PHP 부동 소수점 계산의 악명 높은 정밀도 함정
수치 데이터를 처리할 때는 정밀도가 가장 중요합니다. 그러나 PHP의 부동 소수점 데이터 유형은 매우 까다로울 수 있으며 계산에서 예상치 못한 부정확성을 초래할 수 있습니다.
다음 PHP 코드 조각을 고려하세요.
<code class="php">$fooValue = 100.68; $cowValue = 100.67; $diffValue = $fooValue - $cowValue; if($diffValue <= 0.01) { echo("success"); } else { echo("error"); }</code>
놀랍게도 이 코드는 대신 "error"를 인쇄합니다. 예상되는 "성공".
원인: 부동 소수점 부정확성
범인은 부동 소수점 데이터 유형의 본질적인 부정확성입니다. 바이너리로 변환하거나 바이너리로 변환할 때 정밀도가 손실될 수 있습니다. 따라서 부동 소수점 값을 정확하게 비교하는 것은 신뢰할 수 없습니다.
정밀 계산을 위한 솔루션
이 문제를 해결하려면 다음 접근 방식을 고려하세요.
추가 팁:
위 내용은 내 PHP 부동 소수점 계산 결과가 '성공' 대신 '오류'인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!