今天开发偶然发现js的一个小bug,记录一下
console.log("-0.3077" *100) // 输出 -30.769999999999996
后来发现在Java中也是这样
String a = "0.3077"; double b = Double.parseDouble(a); System.out.println( b * 100);
// 输出 30.769999999999996
python也有类似情况
print(0.3077 *100) // 输出 30.769999999999996
*但是在python中有区别,前两个只是在字符串转过来之后这种情况下才有这种问题,而python则是通过小数直接乘出来就有问题,而且我发现了更多
这些在JS和Java中通过字串转出来也是这样,
目前我发现无论是Linux还是Windows都有这种情况,我觉可能是cpu的通病,你们觉得呢