首頁  >  文章  >  後端開發  >  PHP常見數學函數及BC高精度數學函數實例分享

PHP常見數學函數及BC高精度數學函數實例分享

小云云
小云云原創
2018-01-06 16:16:081864瀏覽

本文主要介紹了PHP常見數學函數及BC高精度數學函數用法,簡單列舉了php常見數學運算函數並結合實例形式給出了bc高精度函數的功能與使用技巧,需要的朋友可以參考下,希望能幫助大家。

本文實例講述了PHP常見數學函數及BC高精度數學函數用法。分享給大家供大家參考,具體如下:

1. bcadd 任意精度數的相加
2. bcsub 任意精度數的減法
3. bcmul 乘法, bcp除法
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 bcp ( string $left_operand , string $right_operand [, int $scale ] )
 *$scale小数点位数默认为 0
 ***************************************************************************************/
 $a = 6;
 $b = 5;
 $c = bcp($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"

##相關推薦:

php高精度數學函數庫函數總表

簡單總結MySQL數學函數

php數學函數擴充

以上是PHP常見數學函數及BC高精度數學函數實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn