本文實(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 求絕對(duì)值
9. pi 得到圓周率數(shù)值
三角函數(shù)
sin cos tan asin acos atan(用弧度表達(dá))
deg2rad 角度轉(zhuǎn)換成弧度
rad2deg 弧度轉(zhuǎn)換成角度
指數(shù)
log 求自然對(duì)數(shù), log10 求10位底的對(duì)數(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)金錢的計(jì)算時(shí)比較有用
***************************************************************************************
*兩個(gè)高精度數(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 "完全相等";
}
/***************************************************************************************
*兩個(gè)高精度數(shù)相加
*string bcadd ( string $left_operand , string $right_operand [, int $scale ] )
*$scale 返回的小數(shù)點(diǎn)個(gè)數(shù)
***************************************************************************************/
$a = 1.0321456;
$b = 0.0123456;
$c = bcadd($a, $b, 2);
var_dump($c);
/***************************************************************************************
*兩個(gè)高精度數(shù)相減
*sstring bcsub ( string $left_operand , string $right_operand [, int $scale ] )
*$scale 返回的小數(shù)點(diǎn)個(gè)數(shù)
***************************************************************************************/
$a = 1.0321456;
$b = 3.0123456;
$c = bcsub($a, $b, 2);
var_dump($c);
/********************************************************
*兩個(gè)高精度數(shù)求余/取模
*string bcmod ( string $left_operand , string $modulus )
*******************************************************/
$a = 6;
$b = 4;
$c = bcmod($a, $b);
var_dump($c);
/***************************************************************************************
*兩個(gè)高精度數(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);
/***************************************************************************************
*兩個(gè)高精度數(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);
/***************************************************************************************
*兩個(gè)高精度數(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ì)算工具供大家進(jìn)一步參考借鑒:
在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php正則表達(dá)式用法總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP浮點(diǎn)數(shù)精度問題匯總
- php精度計(jì)算的問題解析