【发布时间】:2021-08-06 13:08:55
【问题描述】:
当我将“0.0000335651599321165”字符串值转换为双精度时
let value = "0.0000335651599321165"
var doubleValue = Double(value)
它返回值 3.36597214193249e-05。 如何在 swift 5 中获取原始号码。
【问题讨论】:
-
使用
Decimal,而不是Double。Float和Double的精度都比您要求的要小(甚至不说十进制到二进制的精度损失)。 -
除了 Float 和 Double 等浮点数的不精确性之外,您应该注意
"3.36597214193249e-05的科学记数法只是数字表示的一个方面。您的Double完全有可能是您想要的值,但为了便于阅读,以这种方式表示。如果此号码用于向用户展示,则应始终使用NumberFormatter。 -
获得准确数字的要点是将该数字四舍五入到最多 6 位
标签: swift