本文實(shí)例講述了PHP常見數(shù)學(xué)函數(shù)及BC高精度數(shù)學(xué)函數(shù)用法。分享給大家供大家參考,具體如下:
1. bcadd 任意精度數(shù)的相加
2. bcsub 任意精度數(shù)的減法
3. bcmul 乘法, bcdiv除法
4. bcmod 取余數(shù)。 (比%功能更強(qiáng)大)
5. bcpow 冪函數(shù)運(yùn)算
6. bcsqrt 平方根
7. sqrt 平方根運(yùn)算
7. pow求冪
8. abs 求絕對值
9. pi 得到圓周率數(shù)值
三角函數(shù)
sin cos tan asin acos atan(用弧度表達(dá))
deg2rad 角度轉(zhuǎn)換成弧度
rad2deg 弧度轉(zhuǎn)換成角度
指數(shù)
log 求自然對數(shù), log10 求10位底的對數(shù)
exp 以e為底的冪
各種數(shù)制轉(zhuǎn)換
base_convert 通用的任意數(shù)制轉(zhuǎn)換
bindec 二進(jìn)制轉(zhuǎn)換成十進(jìn)制
decbin 十進(jìn)制轉(zhuǎn)換成二進(jìn)制
dechex 十進(jìn)制轉(zhuǎn)換成十六進(jìn)制
decoct 十進(jìn)制轉(zhuǎn)換成八進(jìn)制
hexdec 十六進(jìn)制轉(zhuǎn)換成十進(jìn)制
octdec 八進(jìn)制轉(zhuǎn)換成十進(jìn)制
BC高精確度函數(shù)用法示例:
<?php /*************************************************************************************** *php BC高精確度函數(shù)庫 *php bc math 包含了:相加,比較,相除,相減,求余,相乘,n次方,配置默認(rèn)小數(shù)點(diǎn)數(shù)目,求平方 *這些函數(shù)在涉及到有關(guān)金錢的計算時比較有用 *************************************************************************************** *兩個高精度數(shù)比較 *工作中遇到一種情況,0.00 != 0 *int bccomp ( string $left_operand , string $right_operand [, int $scale ] ) *$left=$right 返回 0 *$left<$right 返回 -1 *$left>$right 返回 1 *$scale 小數(shù)點(diǎn)位數(shù) ***************************************************************************************/ $a = 4.45; $b = 5.54; if(bccomp($a, $b, 2) == 0) { echo "完全相等"; } /*************************************************************************************** *兩個高精度數(shù)相加 *string bcadd ( string $left_operand , string $right_operand [, int $scale ] ) *$scale 返回的小數(shù)點(diǎn)個數(shù) ***************************************************************************************/ $a = 1.0321456; $b = 0.0123456; $c = bcadd($a, $b, 2); var_dump($c); /*************************************************************************************** *兩個高精度數(shù)相減 *sstring bcsub ( string $left_operand , string $right_operand [, int $scale ] ) *$scale 返回的小數(shù)點(diǎn)個數(shù) ***************************************************************************************/ $a = 1.0321456; $b = 3.0123456; $c = bcsub($a, $b, 2); var_dump($c); /******************************************************** *兩個高精度數(shù)求余/取模 *string bcmod ( string $left_operand , string $modulus ) *******************************************************/ $a = 6; $b = 4; $c = bcmod($a, $b); var_dump($c); /*************************************************************************************** *兩個高精度數(shù)相除 *string bcdiv ( string $left_operand , string $right_operand [, int $scale ] ) *$scale小數(shù)點(diǎn)位數(shù)默認(rèn)為 0 ***************************************************************************************/ $a = 6; $b = 5; $c = bcdiv($a, $b, 3); var_dump($c); /*************************************************************************************** *兩個高精度數(shù)相乘 *string bcmul ( string $left_operand , string $right_operand [, int $scale ] ) *$scale小數(shù)點(diǎn)位數(shù)默認(rèn)為 0 ***************************************************************************************/ $a = 3.1415926; $b = 2.4569874566; $c = bcmul($a, $b, 6); var_dump($c); /*************************************************************************************** *兩個高精度數(shù)的次方值 *string bcpow ( string $left_operand , string $right_operand [, int $scale ] ) *$scale小數(shù)點(diǎn)位數(shù)默認(rèn)為 0 ***************************************************************************************/ $a = 3.1415926; $b = 2; $c = bcpow($a, $b, 3); var_dump($c); /************************************************** *求高精度數(shù)的平方根 *string bcsqrt ( string $operand [, int $scale ] ) *$scale小數(shù)點(diǎn)位數(shù)默認(rèn)為 0 ***************************************************/ $b = bcsqrt($a, 6); var_dump($b); /****************************** *設(shè)置bc函數(shù)的小數(shù)點(diǎn)位數(shù) *bool bcscale ( int $scale ) *$scale小數(shù)點(diǎn)位數(shù)默認(rèn)為 0 ******************************/ bcscale(2); ?>
運(yùn)行結(jié)果:
string(4) "1.04" string(5) "-1.98" string(1) "2" string(5) "1.200" string(8) "7.718853" string(5) "9.869" string(8) "1.772453"
PS:這里再為大家推薦幾款計算工具供大家進(jìn)一步參考借鑒:
在線一元函數(shù)(方程)求解計算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學(xué)計算器在線使用_高級計算器在線計算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計算器_標(biāo)準(zhǔn)計算器:
http://tools.jb51.net/jisuanqi/jsq