Java 浮点数值

Java中的两种浮点类型: float和double

浮点数值不适用于无法接受舍入误差的计算中。舍入误差的主要原因在于浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数1/10,这就像十进制无法精确的表示分数1/3一样。

所以如果数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。

二进制系统中无法精确地表示分数1/10何解?
1/10换算成二进制为1/1010,结果无限循环的小数,所以二进制无法用有限的位数来表示0.1.
二进制能用有限的位数表示的一些数,比如0.5, 0.25等。
0.5, 0.25换算成二进制为101/1010,11001/1100100,所以二进制能用有限的位数来表示0.5, 0.25等。

十进制无法精确的表示分数1/3同理。

猜你喜欢

转载自summerhome.iteye.com/blog/2395275
今日推荐