이 글에서는 PHP의 부동 소수점 숫자 처리, 정밀 연산, 숫자 처리 등에 대해 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
1. PHP 부동 소수점 형식 숫자 특히 금융업, 전자상거래 주문, 쇼핑몰 프로젝트에서는 주의하지 않으면 편차가 발생할 수 있습니다.
2. 부동 소수점 숫자는 정밀도가 제한되어 있습니다. 시스템에 따라 다르지만 PHP는 일반적으로 IEEE 754 이중 형식을 사용하므로 반올림으로 인한 최대 상대 오차는 1.11e-16입니다. 기본이 아닌 수학 연산은 더 큰 오류를 초래할 수 있으므로 복합 연산을 수행할 때 오류 전파를 고려해야 합니다. 부동 소수점 결과를 마지막 숫자까지 신뢰하지 말고 두 개의 부동 소수점 숫자가 같은지 비교하지 마십시오. 정말로 더 높은 정밀도가 필요한 경우 임의 정밀도 수학 함수나 gmp 함수를 사용해야 합니다.
//加 $a = 0.1; $b = 0.7; $c = intval(($a + $b) * 10); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:7 //减 $a = 100; $b = 99.98; $c = $a - $b; echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:0.019999999999996 //乘 $a = 0.58; $b = 100; $c = intval($a * $b); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:57 //除 $a = 0.7; $b = 0.1; $c = intval($a / $b); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:6
1. PHP는 문자열로 표현되는 모든 크기와 정밀도의 숫자를 지원하는 이진 계산을 제공합니다.
2. 공식 매뉴얼: php.net/manual/zh/book.bc.php
3. 사용하기 전에 bcmath가 설치되어 있는지 확인하세요.
//加 $a = 0.1; $b = 0.7; $c = intval(bcadd($a, $b, 1) * 10); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:8 //减 $a = 100; $b = 99.98; $c = bcsub($a, $b, 2); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:0.02 //乘 $a = 0.58; $b = 100; $c = intval(bcmul($a, $b)); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:58 //除 $a = 0.7; $b = 0.1; $c = intval(bcp($a, $b)); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:7
1 bccomp는 두 개의 임의 정밀도 숫자를 비교합니다.
2 bcmod는 임의 정밀도 숫자를 올립니다. 임의 정밀도 숫자의 거듭제곱
4. bcpowmod는 고정밀 숫자의 거듭제곱
5. bcscale은 모든 bc 수학 함수에 대한 기본 소수점 유지 자리를 설정합니다
6. bcsqrt는 모든 정밀도 숫자의 제곱근입니다. 2. 일반적으로 사용되는 수치 처리 솔루션
echo floor(5.1); //输出:5 echo floor(8.8); //输出:8
echo ceil(5.1); //输出:6 echo ceil(8.8); //输出:9일반적인 반올림 방법
echo round(5.1); //输出:5 echo round(8.8); //输出:9 //保留两位小数并且进行四舍五入 echo round(5.123, 2); //输出:5.12 echo round(8.888, 2); //输出:8.89 //保留两位小数并且不进行四舍五入 echo substr(round(5.12345, 3), 0, -1); //输出:5.12 echo substr(round(8.88888, 3), 0, -1); //输出:8.88
1.2849 = 1.28 -> 四舍 1.2866 = 1.29 -> 六入 1.2851 = 1.29 -> 五后非空就进一 1.2850 = 1.28 -> 五后为空看奇偶,五前为偶应舍去 1.2750 = 1.28 -> 五后为空看奇偶,五前为奇要进一
1. 우리가 자주 보는 은행 카드 잔액 등의 금액 표시에 적용됩니다.
echo number_format('10000.98', 2, '.', ','); //输出:10,000.98 echo number_format('340888999', 2, '.', ','); //输出:340,888,999.00추천 학습: "
위 내용은 부동 소수점 숫자, 정밀 연산, 숫자 처리 등을 처리하기 위해 PHP를 구문 분석합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!