PHP 부동 소수점 계산 정확도 수수께끼
프로그래밍에서 부동 소수점 계산은 부정확한 특성으로 인해 종종 문제를 일으킬 수 있습니다. PHP 코드 조각에 예시된 것처럼 두 개의 부동 소수점 숫자를 임계값과 비교하면 항상 예상한 결과가 생성되지 않을 수 있습니다.
문제 공식:
제공된 PHP 코드 다음 작업이 포함됩니다.
문제는 <=를 사용하여 부동 소수점을 임계값과 비교하는 데 있습니다. 이 경우 차이가 거의 0임에도 불구하고 "오류"를 출력하여 코드가 예상치 못한 동작을 보입니다.
해결책 설명:
부동 소수점 계산의 부정확성은 10진수에서 2진수로 또는 그 반대로 변환하는 동안 정밀도가 손실됩니다. 따라서 정확한 동일성을 요구하는 == 또는 <=를 사용한 비교는 항상 정확한 결과를 산출하지 못할 수도 있습니다.
이 문제를 해결하려면 다음과 같은 대체 접근 방식을 사용하세요.
프로그래머는 이러한 라이브러리를 활용하여 부동 소수점 계산에 내재된 부정확성을 완화하고 보다 정확한 비교를 수행할 수 있습니다.
위 내용은 PHP Float 비교가 성공해야 하는데 왜 실패합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!