本文實例講述了PHP常見數(shù)學(xué)函數(shù)及BC高精度數(shù)學(xué)函數(shù)用法。分享給大家供大家參考,具體如下:
1. bcadd 任意精度數(shù)的相加
2. bcsub 任意精度數(shù)的減法
3. bcmul 乘法, bcdiv除法
4. bcmod 取余數(shù)。 (比%功能更強大)
5. bcpow 冪函數(shù)運算
6. bcsqrt 平方根
7. sqrt 平方根運算
7. pow求冪
8. abs 求絕對值
9. pi 得到圓周率數(shù)值
三角函數(shù)
sin cos tan asin acos atan(用弧度表達)
deg2rad 角度轉(zhuǎn)換成弧度
rad2deg 弧度轉(zhuǎn)換成角度
指數(shù)
log 求自然對數(shù), log10 求10位底的對數(shù)
exp 以e為底的冪
各種數(shù)制轉(zhuǎn)換
base_convert 通用的任意數(shù)制轉(zhuǎn)換
bindec 二進制轉(zhuǎn)換成十進制
decbin 十進制轉(zhuǎn)換成二進制
dechex 十進制轉(zhuǎn)換成十六進制
decoct 十進制轉(zhuǎn)換成八進制
hexdec 十六進制轉(zhuǎn)換成十進制
octdec 八進制轉(zhuǎn)換成十進制
BC高精確度函數(shù)用法示例:
<?php /*************************************************************************************** *php BC高精確度函數(shù)庫 *php bc math 包含了:相加,比較,相除,相減,求余,相乘,n次方,配置默認小數(shù)點數(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ù)點位數(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ù)點個數(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ù)點個數(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ù)點位數(shù)默認為 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ù)點位數(shù)默認為 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ù)點位數(shù)默認為 0 ***************************************************************************************/ $a = 3.1415926; $b = 2; $c = bcpow($a, $b, 3); var_dump($c); /************************************************** *求高精度數(shù)的平方根 *string bcsqrt ( string $operand [, int $scale ] ) *$scale小數(shù)點位數(shù)默認為 0 ***************************************************/ $b = bcsqrt($a, 6); var_dump($b); /****************************** *設(shè)置bc函數(shù)的小數(shù)點位數(shù) *bool bcscale ( int $scale ) *$scale小數(shù)點位數(shù)默認為 0 ******************************/ bcscale(2); ?>
運行結(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:這里再為大家推薦幾款計算工具供大家進一步參考借鑒:
在線一元函數(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