Java的浮点数计算是存在误差的,所以列出以下注意事项。
1.浮点数计算只有是在两个数之间含有一个浮点数的情况下才能算出。
1+7/3=3这个结果显然是错误的。但是为什么呢?公式没错啊!
因为在Java中, 只有是在两个数之间含有一个浮点数的情况下才能算出浮点数。所以有以下两种修改方案。
(1)将整数型3改为浮点型3.0
(2)将b改为浮点型double b
2.那么如何对浮点数进行比较呢?
(1)
为什么a == b是true,而 a == c是false?这就是跟上一点提到的有关,浮点数的计算有误差。你那我们如何判断呢?
(2)
只需增加一句Math.abs(a - b) < 0.000001,什么意思呢就是说取a - b的绝对值,看是否小于一个很小的数,是的即相等。我们来看看c到底等于什么?
这就是浮点数计算的误差。
有问题欢迎指出,在CSDN上学到很多,希望大家一起分享学习经验。