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"
.
我在 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"
.