java0.1*3

朋友(coreyXu)上次面试回来,问了一个问题,0.1*3==0.3?返回true还是false,首先,能这么问的话,肯定返回的false,但是为什么会这样呢?
在这里插入图片描述
在这里插入图片描述
做了个测试,想到计算机是使用二进制的,但是二进制的小数转为十进制会有精度问题,具体比较复杂…
所以总结

浮点数进行运算的时候尽量使用BigDecimal类型进行处理!参考:BigDecimal注意

世界上所有的不公平都是由于当事人能力不足造成的.
原文地址:https://www.cnblogs.com/javayida/p/13347030.html