1.下面这段代码预期的结果的小数点后应该只有两位,可是执行后的结果和想象中不一样。
float total=0;
for(int i=0;i<36;i++) {
total+=9.9f;
}
System.out.println(total);
上面代码执行得到的结果:
精度丢失对于一些敏感数据很是要命,所以我们在进行计算的时候可以处理一下。
我是用BigDecimal处理的
BigDecimal sum=new BigDecimal(Float.toString(0));
Float.toString(9.9f);
for(int i=0;i<36;i++) {
sum=sum.add(new BigDecimal(Float.toString(9.9f)));
}
System.out.println(sum);
结果和预期一样