php精度計算

2021-09-01 10:26:36 字數 2077 閱讀 5249

預設保留兩位小數

bcadd(引數1,引數2,引數3)

引數1 和2 是要相加的引數 3是保留幾位小數。

bcadd任意精度數的相加

bcsub任意精度數的減法

bcmul乘法,bcdiv除法

bcmod取餘數。 (比%功能更強大)

bcpow冪函式運算

bcsqrt平方根

sqrt平方根運算

pow求冪

abs求絕對值

pi得到圓周率數值

sincostanasinacosatan(用弧度表達)

deg2rad角度轉換成弧度

rad2deg弧度轉換成角度

log求自然對數

log10求10位底的對數

exp以e為底的冪

base_convert通用的任意數制轉換

bindec二進位制轉換成十進位制

decbin十進位制轉換成二進位制

dechex十進位制轉換成十六進製制

decoct十進位制轉換成八進位制

hexdec十六進製制轉換成十進位制

octdec八進位制轉換成十進位制

四捨六入五考慮,五後非空就進一,五後為空看奇偶,五前為偶應捨去,五前為奇要進一。

保留兩位小數,例:

1.2849 = 1.28 -> 四捨

1.2866 = 1.29 -> 六入

1.2851 = 1.29 -> 五後非空就進一

1.2850 = 1.28 -> 五後為空看奇偶,五前為偶應捨去

1.2750 = 1.28 -> 五後為空看奇偶,五前為奇要進一

實現**如下:

echo

round

(1.2849,2

,php_round_half_even);

//輸出:1.28

echo

round

(1.2866,2

,php_round_half_even);

//輸出:1.29

echo

round

(1.2851,2

,php_round_half_even);

//輸出:1.29

echo

round

(1.2850,2

,php_round_half_even);

//輸出:1.28

echo

round

(1.2750,2

,php_round_half_even);

//輸出:1.28

官方手冊

應用於金額的展示,比如我們經常會看的銀行卡餘額

echo

number_format

('10000.98',2

,'.'

,',');

//輸出:10,000.98

echo

number_format

('340888999',2

,'.'

,',');

//輸出:340,888,999.00

PHP算術及精度計算

一 高精度算術運算子 bcadd 將兩個高精度數字相加 bccomp 比較兩個高精度數字,返回 1,0,1 bcdiv 將兩個高精度數字相除 bcmod 求高精度數字餘數 bcmul 將兩個高精度數字相乘 bcpow 求高精度數字乘方 bcpowmod 求高精度數字乘方求模,數論裡非常常用 bcsc...

php高精度數計算

一 前方有坑 php在使用加減乘除等運算子計算浮點數的時候,經常會出現意想不到的結果,特別是關於財務資料方面的計算,給不少工程師惹了很多的麻煩。比如今天工作終於到的乙個案例 a 2586 b 2585.98 var dump a a a b 期望的結果是 float 0.02 實際結果 float ...

php高精度數值計算

bcadd 將兩個高精度數字相加 bccomp 比較兩個高精度數字,返回 1,0,1 bcdiv 將兩個高精度數字相除 bcmod 求高精度數字餘數 bcmul 將兩個高精度數字相乘 bcpow 求高精度數字乘方 bcpowmod 求高精度數字乘方求模,數論裡非常常用 bcscale 配置預設小數點...