다음 코드에서 T1과 T3가 다른 방법은 없습니다. 확실히 내 계산기는 그렇지 않다고 말합니다. 중이 샘플 프로그램에서 그것은 단지에서 System.out.println 아니다자바에서 수학 문제가 왜 발생합니까?
-1702967296
86400000
2592000000
:
public class longTest {
public static final long T1 = 24 * 60 * 60 * 1000 * 30;
public static final long T2 = 24 * 60 * 60 * 1000;
public static final long T3 = T2 * 30;
public static void main(String[] args) {
System.out.println(T1);
System.out.println(T2);
System.out.println(T3);
}
}
그래서 내가 왜의 출력을 얻을 않습니다. 변수에 일식과 마우스가있는 T1을 사용하면 동일한 값을 나타내는 광택이 생깁니다. int
이 2,147,483,647보다 클 수 없습니다 때문에
자바 버전 "1.6.0_33"OSX
정수 오버플로 –
* "Java에서 근본적으로 수학이 잘못 되었습니까?"- 물론 아닙니다! –
@Shark * 정수 * 오버 플로우. 누군가가 그것을 개조 할 때까지 가치가 오래 가지 않습니다. – EJP