目录
一、现象
二、解释
一、现象
在Java中输入命令:System.out.print(2.0 - 1.1),会打印出0.899999999999,并不是期望的0.9。
二、解释
这是因为二进制不能精确的表示0.1。在二进制中,所有的数字都由表示,下面看数学表达式:
3.0和0.625通过二进制可以表示为:
所以,在Java中3.0和0.625等诸如此类的,均可以“正常显示”,而0.1和0.2以及0.3这种则无法这样表示。
但是,如果想要在数值计算中不允许有任何的舍入误差,就需要使用BigDecimal类。下回将写blog.