php 數學函式bc的使用(浮點數計算)

2022-08-13 11:51:13 字數 1356 閱讀 1544

簡介:

對於任意精度的數學,php提供了支援用字串表示的任意大小和精度的數字的二進位制計算,最多為2147483647-1(或0x7fffffff-1)。

1、兩個高精度浮點數相加(bcadd)

/*

* * 兩個高精度數相加

* @access global

* @param float $left

* @param float $right

* @param int $scale 精確到的小數點位數

* @return string

*/var_dump(bcadd($left=1.0321456, $right=0.0243456, 2

));//

1.05

2、兩個高精度浮點數相減(bcsub)

/*

* * 兩個高精度數相減

* @access global

* @param float $left

* @param float $right

* @param int $scale 精確到的小數點位數

* @return string

*/var_dump(bcsub($left=1.0321456, $right=3.0123456, 2

));//

-1.98

3、兩個高精度浮點數相乘(bcmul)

/*

* * 兩個高精度數相乘

* @access global

* @param float $left

* @param float $right

* @param int $scale 精確到的小數點位數

* @return string

*/var_dump(bcmul($left=3.1415926, $right=2.4569874566, 2

));//

7.71

4、兩個高精度浮點數相除(bcdiv)

/*

* * 兩個高精度數相除

* @access global

* @param float $left

* @param float $right

* @param int $scale 精確到的小數點位數

* @return string

*/var_dump(bcdiv($left=6, $right=5, 2

));//

1.20

php 浮點數運算

php r echo 0.1 0.7 0.8 true false 了解浮點運算的都不難理解以上 執行時會得到false 這是因為很多的10進製數都不能精確的轉成2進製,或如果要精確轉換的話需要的二進位制數太長,會捨棄掉末尾部分,只儲存一定的精度。比如0.1 十進位制 0.0001100 1100 ...

PHP 浮點數操作

f 3.14159 使用sprintf對浮點數小數點後三位四捨五入 f new sprintf 3f f echo 3.14159小數點後三位四捨五入 f new.f round round f,3 echo 3.14159小數點後三位四捨五入 round函式 f round.進一法取浮點數的整數 ...

php比較浮點數

php手冊中有一句話,永遠不要比較兩個浮點數是否相等,但是在實際情況中,有時候還是會涉及到關於浮點數的運算和比較,當出現這種情況下,請使用bc math擴充套件函式或者gmp 函式。我們來看一種常見的情況 a 1.3 b 1.2 c 0.1 d a b if d c else printf 20f ...