iOS Swift-将双精度转换为字符串精度最后一个值舍入为下一个值
示例值:3.00035358。我正在尝试将双精度值转换为字符串 方法1:iOS Swift-将双精度转换为字符串精度最后一个值舍入为下一个值,swift,string,double,Swift,String,Double,示例值:3.00035358。我正在尝试将双精度值转换为字符串 方法1: let num = NSNumber(value:self) let formatter : NumberFormatter = NumberFormatter() formatter.numberStyle = .decimal formatter.minimumFractionDigits = 4 let str = formatter.string(from: num)! return str 方法2: exten
let num = NSNumber(value:self)
let formatter : NumberFormatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.minimumFractionDigits = 4
let str = formatter.string(from: num)!
return str
方法2:
extension Double {
var stringWithoutZeroFraction: String {
return truncatingRemainder(dividingBy: 1) == 0 ? String(d: "%.0f", self) : String(format:"%.4f", self)
}
}
期望输出为3.003,但得到3.004。我确实希望将我的最后一个数字四舍五入到下一个数字。如何解决此问题。我们将感谢您提供的任何帮助。如果您使用
数字格式
,您需要将四舍五入模式
设置为.floor
,以实现截断。此外,如果要截断,可能需要设置maximumFractionDigits
,而不是minimumFractionDigits
extension Double {
var string: String {
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 4
formatter.roundingMode = .floor
return formatter.string(for: self) ?? description
}
}
3.00035358.string // "3.0003"
这回答了你的问题吗?