PHP 부동 소수점 계산 정확도: 정밀도 문제 극복
PHP에서 부동 소수점 계산 작업을 할 때 개발자는 정확성과 관련된 문제에 직면하는 경우가 많습니다. 이 문서에서는 허용 오차 0.01을 사용하여 두 부동 소수점 값을 비교하려고 시도했지만 예상치 못한 결과가 발생한 사용자가 직면한 특정 문제를 다룹니다.
문제를 이해하기 위해 제공된 코드를 자세히 살펴보겠습니다.
<code class="php">$fooValue = 100.68; $cowValue = 100.67; $diffValue = $fooValue - $cowValue; if($diffValue <= 0.01) { echo("success"); } else { echo("error"); }</code>
이 예에서는 이진 표현의 부정확성으로 인해 PHP의 부동 소수점 계산이 정확하지 않기 때문에 결과가 "오류"로 인쇄됩니다. 이는 수학적으로 $fooValue와 $cowValue가 0.01만큼 다르지만 내부 바이너리 표현이 이 값을 완벽하게 반영하지 않을 수 있음을 의미합니다.
이 문제를 극복하기 위해 PHP는 대체 솔루션을 제공합니다.
위 내용은 내 PHP 부동 소수점 비교가 왜 부정확합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!