【发布时间】:2014-11-17 05:35:28
【问题描述】:
我有一个关于将下面的伪代码翻译成 Java 时出错的问题。由于截断而导致准确性损失没有问题,但我似乎无法找到编程语言问题。
我虽然答案是Math.pow() 的结果对于双精度来说太多了(范围从4.94065645841246544e-324d 到1.79769313486231570e+308d。但显然还有更多错误,我看不到。
伪代码
x = 7.0
y = x^1000.0
n = y truncated to an integer
转换成
JAVA
double x, y;
int n;
x = 7.0;
y = Math.pow(x,1000.0);
n = (int)y;
非常感谢,我真的很想了解这里的问题。
【问题讨论】:
-
你在说什么错误?您发布的代码没有任何问题。
-
你得到什么结果,你期望什么?
-
7^1000 约为 1.25e845。它超过了双倍的范围。 long,64位整数,可以表示-9.2e18到+9.2e18。 1.25e845也超出了long的范围。这是java语言限制的问题,不是翻译的问题。
标签: java pseudocode code-translation