使用NumberFormatter向数字添加零位

时间:2019-03-01 21:35:39

标签: swift foundation numberformatter

我有一个字符串

let str = "2.1"

我想将其强制转换为Double,并始终在分隔符之后使用两位数字:

let double = 2.10 

所以我要做的是:

let formatter = NumberFormatter()
formatter.decimalSeparator = "."
formatter.minimumFractionDigits = 2

let myDoubleValue = formatter.number(from: str)?.doubleValue

输出仍然只有1个小数位数:2.1

为什么?

2 个答案:

答案 0 :(得分:1)

也许您的意思是:

let str = "2.1"
if let double = Double(str) as? NSNumber {
    let formatter = NumberFormatter()
    formatter.decimalSeparator = "."
    formatter.minimumFractionDigits = 2
    if let myNewStringValue = formatter.string(from: double) {
        print(myNewStringValue) // 2.10
    }
}

答案 1 :(得分:0)

您不能在双精度数后面加上0,它会截断。

如果只是显示值,请将其保留为字符串。 如果您要进行计算,那么0会产生什么变化?