Java 打印算术方程式的错误答案
Java Printing Wrong Answer to Arithmetic Equation
System.out.println("3.14 - 5 = " + (3.14 - 5));
当答案为 -1.86 时,此语句在控制台中显示 3.14 - 5 = -1.8599999999999999。
我怎样才能修复这个错误?首先打印错误答案的原因是什么?
感谢您回答我的问题,尽管它可能非常简单:/.
当十进制数转换为二进制时,它是近似值而不是exact.So减法不精确。
3.14 is converted to binary ,so is 5 When the result reconverted to decimal it is not exact.Read about converting decimals to binary from this link :
http://cs.furman.edu/digitaldomain/more/ch6/dec_frac_to_bin.htm
System.out.println("3.14 - 5 = " + (3.14 - 5));
当答案为 -1.86 时,此语句在控制台中显示 3.14 - 5 = -1.8599999999999999。
我怎样才能修复这个错误?首先打印错误答案的原因是什么?
感谢您回答我的问题,尽管它可能非常简单:/.
当十进制数转换为二进制时,它是近似值而不是exact.So减法不精确。
3.14 is converted to binary ,so is 5 When the result reconverted to decimal it is not exact.Read about converting decimals to binary from this link :
http://cs.furman.edu/digitaldomain/more/ch6/dec_frac_to_bin.htm