簡介

對于任意精度的數(shù)學, 如果有足夠多的內(nèi)存,PHP 提供的 BCMath 支持用字符串的形式表示任意大小和精度的數(shù)字,最大尺寸為 2147483647(即 0x7FFFFFFF)。

有效(即格式良好)的 BCMath 數(shù)字是匹配正則表達式 /^[+-]?[0-9]*(\.[0-9]*)?$/ 的字符串。

警告

BCMath 函數(shù)想要操作的是 string,如果傳入了 float 可能無法達到想要的效果, 因為 PHP 會將 float 的值轉(zhuǎn)換為 string。 也就意味著 string 可能會帶科學計數(shù)法符號(BCMath 并不支持), 另外在 PHP 8.0.0 之前,小數(shù)點分隔符也不支持本地化(BCMath 只能識別英文句號小數(shù)點)。

<?php
$num1 
0// (string) 0 => '0'
$num2 = -0.000005// (string) -0.000005 => '-5.05E-6'
echo bcadd($num1$num26); // => '0.000000'

setlocale(LC_NUMERIC'de_DE'); // 使用逗號小數(shù)點
$num2 1.2// (string) 1.2 => '1,2'
echo bcsub($num1$num21); // => '0.0'
?>