2017-01-16 41 views
0

由於顯示如下圖所示: like this隱藏整數以浮動。問題解決了,但不知道爲什麼

我文本框的值與99999999進行比較,並會根據結果的行爲不同。

最後我發現integerValue或doubleValue方法返回正確的值, 但誰能解釋我爲什麼?爲什麼floatValue在這裏是100000000?是不是可以預測的?

感謝您的提前。

+1

單精度浮點數僅具有精度大約6個十進制數字 - int和double都要多。在這裏瞭解更多關於浮點數的信息:https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+0

使用'NSNumberFormatter' – aircraft

+0

@PaulR是的,我已經瞭解了不同數據類型的精度,謝謝。仍然徘徊爲什麼是100000000 :) – CoderWang

回答

0

浮點數在計算機硬件中表示爲基2(二進制)分數。

大多數小數不能完全表示爲二進制分數。其結果是,通常,您輸入的十進制浮點數僅通過實際存儲在機器中的二進制浮點數來近似。

有你可以參考文檔:http://www.c64-wiki.com/index.php/Floating_point_arithmetic

相關問題