Java计算有所不同

时间:2018-07-14 12:57:04

标签: java math servlets java-ee calculation

我在JavaEE中有一个简单的数学计算类,其结果与在线Java计算器不同。例如,网站JavaCalc为我提供了正确的结果,即0.0009。但是,对于我来说,在我的Java程序中,结果为9.xxx。

上述网址上使用的数学公式:

(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

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

2 个答案:

答案 0 :(得分:2)

结果在计算中相同,但显示方式不同。我的输出是
9.893141646194965E-4
这表示0.0009xxxxx。 “ E”代表科学计数法,E-4表示将小数点向左移动四(因此变为0.0009xxxxxxxxxx)。也可以写成9.893141646194965 * 10 ^ -4。它们是相同的值,但是我想System.out.println()会将数字转换为科学计数法,如果这更容易阅读的话。 Java将这些值解释为相同。

答案 1 :(得分:1)

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

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

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