Java 计算不同

Java Calculation differs

我在 JavaEE 中进行了简单的数学计算 class,结果与在线 java 计算器不同。例如网站 JavaCalc 给了我正确的结果,即 0.0009。但是,对于我的 java 程序,结果变为 9.xxx.

上述URL中使用的数学公式:

(0.5) * ((0.85724038)-(0.779))/((40.32173718)-(0.779))

Java 等式:

Total_Score = (0.5) * ((T) - (N)) / ((ME) - (N));

在哪里: T = 0.85724038

N = 0.779

M = 40.32173718

我很困惑为什么两个方程式相同时答案不同。

计算结果相同,只是显示不同。我的输出是
9.893141646194965E-4
这意味着 0.0009xxxxx。 "E"代表科学计数法,E-4表示小数点向左移动四位(即0.0009xxxxxxxxxx)。也可以写成 9.893141646194965 * 10^-4。它们是相同的值,但我猜 System.out.println() 将数字转换为科学记数法,如果这样更容易阅读的话。 Java 将这些值解释为相同。

如果你想实际显示非科学计数法的数字,你可以使用format:

String.format("%.Xf", yourNumHere);

其中 X 是要显示的小数位数。如果您希望它显示到小数点后 9 位,则格式字符串将为 "%.9f".