本文實例講述了PHP常見數學函數及BC高精度數學函數用法。分享給大家供大家參考,具體如下:
1. bcadd 任意精度數的相加
2. bcsub 任意精度數的減法
3. bcmul 乘法, bcdiv除法
4. bcmod 取余數。 (比%功能更強大)
5. bcpow 冪函數運算
6. bcsqrt 平方根
7. sqrt 平方根運算
7. pow求冪
8. abs 求絕對值
9. pi 得到圓周率數值
三角函數
sin cos tan asin acos atan(用弧度表達)
deg2rad 角度轉換成弧度
rad2deg 弧度轉換成角度
指數
log 求自然對數, log10 求10位底的對數
exp 以e為底的冪
各種數制轉換
base_convert 通用的任意數制轉換
bindec 二進制轉換成十進制
decbin 十進制轉換成二進制
dechex 十進制轉換成十六進制
decoct 十進制轉換成八進制
hexdec 十六進制轉換成十進制
octdec 八進制轉換成十進制
BC高精確度函數用法示例:
<?php /*************************************************************************************** *php BC高精確度函數庫 *php bc math 包含了:相加,比較,相除,相減,求余,相乘,n次方,配置默認小數點數目,求平方 *這些函數在涉及到有關金錢的計算時比較有用 *************************************************************************************** *兩個高精度數比較 *工作中遇到一種情況,0.00 != 0 *int bccomp ( string $left_operand , string $right_operand [, int $scale ] ) *$left=$right 返回 0 *$left<$right 返回 -1 *$left>$right 返回 1 *$scale 小數點位數 ***************************************************************************************/ $a = 4.45; $b = 5.54; if(bccomp($a, $b, 2) == 0) { echo "完全相等"; } /*************************************************************************************** *兩個高精度數相加 *string bcadd ( string $left_operand , string $right_operand [, int $scale ] ) *$scale 返回的小數點個數 ***************************************************************************************/ $a = 1.0321456; $b = 0.0123456; $c = bcadd($a, $b, 2); var_dump($c); /*************************************************************************************** *兩個高精度數相減 *sstring bcsub ( string $left_operand , string $right_operand [, int $scale ] ) *$scale 返回的小數點個數 ***************************************************************************************/ $a = 1.0321456; $b = 3.0123456; $c = bcsub($a, $b, 2); var_dump($c); /******************************************************** *兩個高精度數求余/取模 *string bcmod ( string $left_operand , string $modulus ) *******************************************************/ $a = 6; $b = 4; $c = bcmod($a, $b); var_dump($c); /*************************************************************************************** *兩個高精度數相除 *string bcdiv ( string $left_operand , string $right_operand [, int $scale ] ) *$scale小數點位數默認為 0 ***************************************************************************************/ $a = 6; $b = 5; $c = bcdiv($a, $b, 3); var_dump($c); /*************************************************************************************** *兩個高精度數相乘 *string bcmul ( string $left_operand , string $right_operand [, int $scale ] ) *$scale小數點位數默認為 0 ***************************************************************************************/ $a = 3.1415926; $b = 2.4569874566; $c = bcmul($a, $b, 6); var_dump($c); /*************************************************************************************** *兩個高精度數的次方值 *string bcpow ( string $left_operand , string $right_operand [, int $scale ] ) *$scale小數點位數默認為 0 ***************************************************************************************/ $a = 3.1415926; $b = 2; $c = bcpow($a, $b, 3); var_dump($c); /************************************************** *求高精度數的平方根 *string bcsqrt ( string $operand [, int $scale ] ) *$scale小數點位數默認為 0 ***************************************************/ $b = bcsqrt($a, 6); var_dump($b); /****************************** *設置bc函數的小數點位數 *bool bcscale ( int $scale ) *$scale小數點位數默認為 0 ******************************/ bcscale(2); ?>
運行結果:
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:這里再為大家推薦幾款計算工具供大家進一步參考借鑒:
在線一元函數(方程)求解計算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學計算器在線使用_高級計算器在線計算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計算器_標準計算器:
http://tools.jb51.net/jisuanqi/jsq
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。