[英]Basic iOS Decimal Trim
我有浮点值1.96,然后我想将1.9显示为字符串,如果我使用String(format:“%.1f”)结果是2.0,我也尝试使用NumberFormatter作为扩展名
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 1
formatter.minimumFractionDigits = 1
return formatter.string(for: self)!
但是结果还是2.0
有什么最好的方法来达到1.96到1.9?
老把戏:
var yourResult = Double(floor(10*yourDecimalDigit)/10)
// yourResult = 1.9
转换成这样的字符串
var string = String(yourResult)
您可以使用Double的常规扩展名来截断double值。
迅捷4.0
extension Double {
func truncate(places : Int)-> Double {
return Double(floor(pow(10.0, Double(places)) * self)/pow(10.0, Double(places)))
}
}
在下面这样使用
let trimedValue = 1.96.truncate(places: 1) // 1.9
也许有些方法可以为您提供帮助,但我喜欢自己做
延期 :
extension CGFloat{
var onlyOneDigits : String {
var str = "\(self)"
let count = str.count
if self >= 1000 && self < 10000{
str.removeLast(count - 6)
return str
}else if self >= 100{
str.removeLast(count - 5)
return str
}else if self >= 10{
str.removeLast(count - 4)
return str
}else{
str.removeLast(count - 3)
return str
}
}
}
用它 :
let myFloat : CGFloat = 1212.1212
let myStr : String = myFloat.onlyOneDigits
print(myStr) // 1212.1
let anotherFloat : CGFloat = 1.96
let anotherStr : String = anotherFloat.onlyOneDigits
print(anotherStr) // 1.9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.