让我们看一下这个简单的例子
let formatter = NumberFormatter()
formatter.number(from: "0.945")?.decimalValue // result: 0.945
formatter.number(from: "0.94")?.decimalValue // result: 0.9399999999999999如何实现将"0.94"转换为具有完全相同值的小数,例如0.94
我更喜欢使用NumberFormatter的解决方案,因为我还想将此字符串转换为十进制,用于货币金额,如"$0.94"和"0.94€"
发布于 2021-01-20 21:27:07
This website包含解释。基本上,计算机使用不能非常准确地表示这些数字的系统来存储这些数字。
如果您需要更高的精确度,我建议使用Decimal或NSDecimalNumber等decimal类型
Decimal(string: "0.945")
Decimal(string: "0.94")https://stackoverflow.com/questions/65810106
复制相似问题