-4

我有一个字符串

let str = "2.1"

我想将它转换为 Double 并且在分隔符之后总是有 2 位数字:

let double = 2.10 

所以我要做的是:

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

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

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

为什么 ?

4

2 回答 2

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
    }
}
于 2019-03-01T21:58:20.380 回答
0

你不能有一个尾随 0 的双精度数,它会被截断。

如果您只是显示该值,请将其保留为字符串。如果您正在执行计算,0 会有什么不同?

于 2019-03-01T22:29:31.510 回答