有趣的java面试题

浮点数计算问题

商店买东西,花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来计算。

猜你喜欢

转载自blog.csdn.net/enthan809882/article/details/112320353