BC 數學 函數
因為php 是弱類型語言,所以對類型檢測比較隨意,沒有嚴格的比較之類的,同時針對浮點型數據的運算會出現各種各樣的問題,有時候完全是自己意想不到的結果,
特別是針對金錢相關的數字的時候,更要謹慎,畢竟誰都不願意自己的金額或者公司賬戶少錢,對不上賬之類的,所以為了更好的對數字之間的計算,建議使用bc函數,
這樣不會出現意向不到的結果。
bcadd
任意兩個精度的加法
<?php $a = '1.234'; $b = '5'; echo bcadd($a, $b); // 6
echo bcadd($a, $b, 4); // 6.2340
?>
bcsub
兩個任意精度數字的減法
<?php $a = '1.234'; $b = '5'; echo bcsub($a, $b); // -3
echo bcsub($a, $b, 4); // -3.7660
?>
bcmul
兩個任意精度數字乘法計算
<?php echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>
bcdiv
兩個任意精度的數字除法計算
<?php echo bcdiv('105', '6.55957', 3); // 16.007
?>
bccomp
比較兩個任意精度的數字
<?php echo bccomp('1', '2'); // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1
?>
bcmod
任意精度數字取模
<?php bcscale(0); echo bcmod( '5', '3'); // 2
echo bcmod( '5', '-3'); // 2
echo bcmod('-5', '3'); // -2
echo bcmod('-5', '-3'); // -2
?>
bcpow
任意精度數字的乘方
<?php echo bcpow('4.2', '3', 2); // 74.08
?>
bcscale
設置/獲取所有 bc math 函數的默認小數點保留位數
<?php // 默認小數點位數: 3
bcscale(3); echo bcdiv('105', '6.55957'); // 16.007 // 不調用 bcscale() 也一樣
echo bcdiv('105', '6.55957', 3); // 16.007
?>
bcsqrt
任意精度數字的二次方根
<?php echo bcsqrt('2', 3); // 1.414
?>
具體用法,參數要自己去百度一下