부동 소수점 산술의 결합성
부동 소수점 산술은 과학 컴퓨팅에 널리 사용되지만 다음과 같은 독특한 질문이 생깁니다. 덧셈과 곱셈의 결합? 단순해 보이는 이 쿼리에는 숨겨진 복잡성이 숨어 있습니다.
부동 소수점 덧셈 영역에서는 연관성이 항상 보장되는 것은 아닙니다. 눈에 띄는 예는 다음 코드입니다.
cout << ((0.7 + 0.2 + 0.1) == 1) << endl; //output is 0 cout << ((0.7 + 0.1 + 0.2) == 1) << endl; //output is 1
놀랍게도 이 두 명령문은 서로 다른 결과를 생성합니다. 왜 그럴까요?
부동소수점 표현의 한계에 대한 설명입니다. 부동 소수점 숫자는 실제 값의 근사치로 저장되므로 부정확도가 높아집니다. 여러 부동 소수점 값을 추가하는 경우 누적된 오류와 반올림으로 인해 작업 순서가 중요합니다.
참조된 표준 문서인 "모든 컴퓨터 과학자가 부동 소수점 연산에 대해 알아야 할 사항"에는 다음과 같이 적절하게 설명되어 있습니다.
"반올림 오류로 인해 대수학의 결합 법칙이 부동 소수점 숫자에 반드시 적용되는 것은 아닙니다."
위 내용은 부동소수점 연산은 결합적인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!