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