簡介:
對於任意精度的數學,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 ...