Java打印对算术方程的错误答案

时间:2015-06-05 18:31:58

标签: java math runtime-error println

System.out.println("3.14 - 5 = " + (3.14 - 5));

当答案为-1.86时,此语句在控制台中显示3.14 - 5 = -1.8599999999999999。

我如何才能解决此错误?首先打印错误答案的原因是什么?

感谢您回答我的问题,即使它可能非常简单:/。

1 个答案:

答案 0 :(得分:1)

当十进制数转换为二进制时,它是近似的而不是精确的。因此减法并不精确。

  

3.14被转换为二进制,所以是5当结果重新转换为十进制时,它不是精确的。关于从这个链接将小数转换为二进制:

http://cs.furman.edu/digitaldomain/more/ch6/dec_frac_to_bin.htm

相关问题