보다 큰 값을 보유 문자열에서 두 번 구문 분석 : 1.7976931348623157E308
모든 것의 언급 한 값에 대해는 다음과 같은 자바 코드를 고려 Double.MaxValue
String toParse = "1.7976931348623157E308"; //max value of a double in java
double parsed = Double.parseDouble(toParse);
System.out.println(parsed);
하는 것은 의미가 있습니다 하나는 올바른 출력을 얻을 수 있습니다.
이제 1.7976931348623158E308
(마지막 숫자는 E
증가하기 전까지)을 구문 분석하려고 시도하지만 여전히 최대 값이 콘솔에 인쇄됩니다!
1.7976931348623159E308
을 구문 분석 한 후에 만 (다시 마지막 숫자가 증가합니다) 큰 숫자는 Infinity
이됩니다.
해당 음수 값에 대해 동일한 동작입니다.
왜 ... 8E308
은 ... 7E308
으로 해석되며 Infinity
이 아닌 이유는 무엇입니까?
이 응용 프로그램과 관련성이 있습니까? – AlexWien
나는 당신이 가장자리 사건으로 재미를 느끼고 있다고 생각한다. 소스 코드를 보셨습니까? –
@AlexWien이 우연히 "우연히"우연히 발견했습니다. –