Ios Swift中的小数舍入问题

Ios Swift中的小数舍入问题,ios,swift,Ios,Swift,我使用默认的十进制到字符串转换器,使用苹果提供的规定对值进行舍入 String(format: "%.02f", 0.345) 但是如果我四舍五入0.345得到0.34值,就好像我四舍五入0.445得到0.45 这是SDK中的错误还是预期的行为 注意:我知道替代解决方案是使用NumberFormatter,但希望检查字符串格式化程序的问题。这是浮点二进制表示的产物 小数0.345和0.445不能精确表示为浮点二进制数。因此,实际值非常接近,但不完全相同 具体来说,双精度0.

我使用默认的十进制到字符串转换器,使用苹果提供的规定对值进行舍入

String(format: "%.02f", 0.345)
但是如果我四舍五入0.345得到0.34值,就好像我四舍五入0.445得到0.45

这是SDK中的错误还是预期的行为


注意:我知道替代解决方案是使用NumberFormatter,但希望检查字符串格式化程序的问题。

这是浮点二进制表示的产物

小数
0.345
0.445
不能精确表示为浮点二进制数。因此,实际值非常接近,但不完全相同

具体来说,双精度
0.345
实际上是
.3449999..
,双精度
0.445
实际上是
0.445000000000006613..


这就是你得到的结果。

@user2864740请检查我的问题。对于0.445,它工作正常。问题是0.345