浮点数大小比较问题

这里写图片描述
这张图是我某次进行float类型的两数进行比较的时候的结果,它本身没出什么精度的问题percent调试值是0.2,proportion也是0.2,但是调试结果却出错了,进入了0.2>0.2的分支,这里我只感觉到了一个坑字。。。后面用了BigDecimal解决了,百度了一下发现这种比较还是有风险出错的,单精确的问题,可以这样解决:

float num=(float)(Math.round(totalPrice*100)/100);

这样最多保留两位小数,但上述问题第一次遇到,无奈用了

BigDecimal decimal1 = new BigDecimal(num1);
BigDecimal decimal2 = new BigDecimal(num2);
if(decimal1.compareTo(decimal2)>0){}

经调试无误了,但总觉得整体计算的问题依然存在,算是一种暂时的解决方式吧,暂时记录一下。

猜你喜欢

转载自blog.csdn.net/yu_duan_hun/article/details/81363913