Keyfi duyarlıklı matematik işlemleri için PHP, herhangi bir boyut ve
duyarlıktaki sayıları 2147483647
'ye kadar
(veya 0x7FFFFFFF
) destekleyen BCMath işlevlerini kullanır.
Yeterli bellek yoksa, sayılar dizge olarak gösterilir.
Geçerli (yani, iyi biçimli) BCMath sayıları
/^[+-]?[0-9]*(\.[0-9]*)?$/
düzenli ifadesi ile eşleşen
dizgelerdir.
string türünde bir terim bekleyen bir BCMath işlevine float türünde değer aktarılması, PHP'nin float değerleri string türüne dönüştürme yolundan dolayı istenen etkiyi sağlamayabilir (string üstel gösterim içerebilir ama üstel gösterim BCMath tarafından desteklenmez, ayrıca PHP 8.0.0 öncesinde ondalık ayracı yerele bağımlıdır ama BCMath burada ondalık nokta bekler).
<?php
$num1 = 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'
setlocale(LC_NUMERIC, 'de_DE'); // ondalık ayraç virgüldür
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>