將值27.8675309
輸入到IEEE 754 Converter的「十進制表示」字段中,將我輸入的值更改爲27.86753
。同樣,Java在解析具有相同值的字符串時會丟棄最後兩位數字。爲什麼我的浮動被截斷?
Float.parseFloat("27.8675309") // Results in a float value of 27.86753
我不知道是什麼IEEE轉換器的「十進制表示」實際上是(它是一個浮動?),但我希望它給我最大的數字可能是:
- 是一個浮點值
- 不超過我進入 原值
我希望Java來以類似的方式表現,就是我希望的上述代碼行返回一個浮點值等於27.8675308
或者更接近我原始輸入的浮點值,而不是隻刪除小數位。我在這裏錯過了什麼?
如果你需要更高的精度,或許'double'比'float'更好。 – 2012-01-31 17:37:21
@typoknig「8675309」是一個巧合,還是與80年代的歌曲相吻合? – 2012-02-21 14:56:18
不巧:-) – ubiquibacon 2012-02-22 11:54:58