簡體   English   中英

Swift 中的十進制四舍五入問題

[英]Decimal Round Off issue in Swift

我正在使用默認的十進制到字符串轉換器,使用 Apple 提供的四舍五入值。

String(format: "%.02f", 0.345)

但是,如果我四舍五入0.345得到0.34值,就好像我四舍五入0.445得到0.45

這是 SDK 中的錯誤還是預期的行為?

注意:我知道替代解決方案是使用 NumberFormatter 但想檢查 String 格式化程序的問題。

這是浮點二進制表示的神器。

小數0.3450.445不能精確表示為浮點二進制數。 因此,實際值非常接近,但不完全相同。

具體來說,雙精度0.345實際上是.3449999.... ,雙精度0.445實際上是0.4450000000000000066613...

因此你得到的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM