在 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
我也尝试使用 NSNumber
、Float
和 Double
,但它总是删除零。
你能帮我解决这个吗提前谢谢
12
和 12.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 是相同的。
请检查这个例子
let strValue = "12.00"
let decimalValue = Decimal(string: strValue) // 12
它总是 returns 12 而不是 12.00
我也尝试使用 NSNumber
、Float
和 Double
,但它总是删除零。
你能帮我解决这个吗提前谢谢
12
和 12.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 是相同的。