我在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
我很困惑,为什么当两个方程式相同时答案不同。
答案 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"
。