아래의 의사 코드를 Java로 변환 할 때 오류에 대한 질문이 있습니다. 잘라내 기 때문에 정확성이 떨어지는 문제는 없지만 찾을 수없는 프로그래밍 언어 문제가 있습니다.Pseudo Code to 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;
로 변환
많은 점에 감사 드리며, 여기에있는 문제를 정말로 이해하고 싶습니다. 당신이
무슨 오류가 있습니까? 게시 한 코드에는 아무런 문제가 없습니다. – azurefrog
어떤 결과를 얻고 무엇을 기대합니까? –
7^1000은 약 1.25e845입니다. 그것은 두 배의 범위를 초과합니다. 긴 64 비트 정수는 -9.2e18에서 + 9.2e18까지 표현할 수 있습니다. 1.25e845도 긴 범위를 초과합니다. 이것은 번역이 아닌 자바의 언어 제한 문제입니다. –