Java 프로그램의 이상한 부동 소수점 동작
이 질문에서 사용자는 배열에서 이중 값을 합산하는 동안 이상한 동작을 경험하게 됩니다. 구체적으로 말하면 결과는 예상 합계에서 점차 벗어나게 됩니다. 이 현상은 디지털 시스템에서 부동 소수점 값이 표현되는 방식에 기인할 수 있습니다.
프로그래밍 언어에서 가장 널리 사용되는 부동 소수점 표현인 IEEE 단일 및 이중은 10진수 저장 장치가 아닌 2진 저장 장치를 사용합니다. 결과적으로 특정 소수 부분만 이진 형식으로 정확하게 표현될 수 있습니다. 이러한 분수는 다음과 같이 음의 2제곱의 합으로 표현 가능한 값으로 제한됩니다.
0.5 (2^-1) 0.125 (2^-3) 0.625 (2^-1 + 2^-3)
0.96과 같이 음의 2의 거듭제곱의 합으로 표현할 수 없는 분수에는 고유한 오류가 포함되어 있습니다. 그들의 이진 표현. 이러한 분수가 완전한 정밀도로 소수 값으로 표시되면 불가피한 근사치로 인해 원래 값과 일치하지 않습니다.
위 내용은 Java에서 Double을 합산하면 예기치 않은 값이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!