iOS Swift-将double精度转换为String精度,将最后一个值舍入为下一个值

问题描述 投票:-1回答:1

示例值:3.000035358。我正在尝试将双精度值转换为字符串

方法1:

let num = NSNumber(value:self)
let formatter : NumberFormatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.minimumFractionDigits = 4
let str = formatter.string(from: num)!
return str

method2:

extension Double {

    var stringWithoutZeroFraction: String {
        return truncatingRemainder(dividingBy: 1) == 0 ? String(d: "%.0f", self) : String(format:"%.4f", self)
    }
}

预期输出为3.003,但类似于3.004。我确实希望将我的最后一位四舍五入到下一位。如何解决问题。将提供任何帮助。

示例值:3.000035358。我试图将双精度值转换为字符串方法1:let num = NSNumber(value:self)let formatter:NumberFormatter = NumberFormatter()formatter.numberStyle = ....

swift string double
1个回答
0
投票

如果使用NumberFormatter,则需要将roundingMode设置为.floor以实现截断。另外,如果要截断,则可能要设置maximumFractionDigits而不是minimumFractionDigits

© www.soinside.com 2019 - 2024. All rights reserved.