BCMath — розрахунки з довільною математичною точністю
BCMath
&reftitle.intro;
Для математичних обчислень з довільною точністю PHP пропонує
розширення BC Math, яке дозволяє оперувати числами будь-якого розміру і
точності, представленими у вигляді рядків, аж до
2147483647 (0x7FFFFFFF) знаків або
обмежуючись виділеною пам'яттю.
Правильними числами для BCMath є рядки, що відповідають регулярному виразу
/^[+-]?[0-9]*(\.[0-9]*)?$/.
Передавання числа типу float в функції BCMath, які очікують
операнди типу string, може не мати бажаного ефекту через
спосіб, яким PHP перетворює float-значення в
string, а саме: рядок (string) може
отримати експонентний запис числа (що не підтримується BCMath); до PHP 8.0.0
символ десяткового розділювача залежить від локалі (тоді як BCMath очікує
крапку).
'0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'
setlocale(LC_NUMERIC, 'de_DE'); // розділювач — кома
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>
]]>
&reference.bc.setup;
&reference.bc.reference;
&reference.bc.bcmath.number;