System.out.println("3.14 - 5 = " + (3.14 - 5));
当答案为-1.86时,此语句在控制台中显示3.14 - 5 = -1.8599999999999999。
我如何才能解决此错误?首先打印错误答案的原因是什么?
感谢您回答我的问题,即使它可能非常简单:/。
答案 0 :(得分:1)
当十进制数转换为二进制时,它是近似的而不是精确的。因此减法并不精确。
3.14被转换为二进制,所以是5当结果重新转换为十进制时,它不是精确的。关于从这个链接将小数转换为二进制:
http://cs.furman.edu/digitaldomain/more/ch6/dec_frac_to_bin.htm