[英]Decimal Round Off issue in Swift
我正在使用默認的十進制到字符串轉換器,使用 Apple 提供的四舍五入值。
String(format: "%.02f", 0.345)
但是,如果我四舍五入0.345得到0.34值,就好像我四舍五入0.445得到0.45 。
這是 SDK 中的錯誤還是預期的行為?
注意:我知道替代解決方案是使用 NumberFormatter 但想檢查 String 格式化程序的問題。
這是浮點二進制表示的神器。
小數0.345
和0.445
不能精確表示為浮點二進制數。 因此,實際值非常接近,但不完全相同。
具體來說,雙精度0.345
實際上是.3449999....
,雙精度0.445
實際上是0.4450000000000000066613...
。
因此你得到的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.