浮点数计算问题
商店买东西,花1.1元,给2元,找回多少?
代码:
double total = 2.0;
double used = 1.1;
double result = total - used;
System.out.println("result : " + result);
结果: 0.8999999999999999
正确代码:
BigDecimal bd1 = new BigDecimal("2.0");
BigDecimal bd2 = new BigDecimal("1.1");
System.out.println(bd1.subtract(bd2));
结果: 0.9 ,正确。
结论: 浮点计算要用BigDecimal来计算。