在 Swift 中从 String 转换为 Decimal 时 Decimal 值被删除

Decimal values get remove when convert from String to Decimal in Swift

请检查这个例子

 let strValue = "12.00"
 let decimalValue = Decimal(string: strValue) // 12

它总是 returns 12 而不是 12.00 我也尝试使用 NSNumberFloatDouble,但它总是删除零。

你能帮我解决这个吗提前谢谢

1212.00 没有区别。 我们唯一需要做的就是将值呈现给用户。为此,您可以使用格式化字符串。

喜欢:

String(format: "%.2f", floatValue)

就像马丁说的。 12 和 12.00 是同一个数字。逗号后面有多少个 0 在数学上并不重要。

虽然数字保持不变,但表示方式不同。

String(format: "%.6f", 12) 将给出 12.000000 作为字符串。

编辑:
Decimal 是一个结构。数字的含义保持不变。把这个扔到操场上。

import UIKit
let decimal = Decimal(12.0000000000)
let justAnInt = 12

let sameDecimal = decimal == Decimal(justAnInt)

看到了吗?数学中没有无限0这样的东西。零是有限的。从 12.000000 生成的 Decimal 和从 12 创建的 Decimal 是相同的。