이 기사의 예에서는 PHP의 두 가지 부동 소수점 비교 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
최근 계약 관리 시스템을 개발할 때 두 개의 부동 소수점 숫자를 비교하는 작업이 포함되어 있어 매우 우울했습니다.
예전에는 “부동소수점 수를 비교할 때 등호를 사용하지 말라”는 “진실”을 어디서 들은 것인지 모르고 매일 사용했는데 문제가 없는 것 같았습니다. 그런데 이번에 드디어 문제가 생겼습니다.
<?php $sum = "12300.00"; $a = "10000.30"; $b = "2000.30"; $c = "299.40"; $sum = (float) $sum; $s = (float) ($a+$b+$c); var_dump($sum, $s); var_dump($sum==$s);
결과는 다음과 같습니다.
플로트(12300)
플로트(12300)
부울(거짓)
나중에 PHP에서 두 부동 소수점 숫자의 크기를 비교하려면 bccomp(매개변수 1, 매개변수 2, 소수 자릿수)를 사용하여 비교할 수 있다는 것을 알게 되었습니다.
<?php $sum = "12300.00"; $a = "10000.30"; $b = "2000.30"; $c = "299.40"; $sum = (float) $sum; $s = (float) ($a+$b+$c); var_dump($sum, $s); var_dump(bccomp($sum,$s,2));
결과:
플로트(12300)
플로트(12300)
int(0) // 0은 두 개의 부동 소수점 값이 동일함을 의미합니다.
bccomp 함수의 구체적인 사용법은 PHP 매뉴얼을 참고하세요.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.