将值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