之前在工作中遇到过浮点数的计算,当时用的double类型,2.0-1.1,结果为0.8999999999999999,并没有想象中返回0.9。
根据java核心编程书中(P35),浮点数值采用二进制系统表示,而在二进制系统中无法精确表示分数1/10,就像十进制中无法精确表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类,对于具体的BigDecimal类的加减乘除操作直接百度即可
之前在工作中遇到过浮点数的计算,当时用的double类型,2.0-1.1,结果为0.8999999999999999,并没有想象中返回0.9。
根据java核心编程书中(P35),浮点数值采用二进制系统表示,而在二进制系统中无法精确表示分数1/10,就像十进制中无法精确表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类,对于具体的BigDecimal类的加减乘除操作直接百度即可