BCMath Rechnen mit beliebiger Genauigkeit
BC Math
&reftitle.intro;
Für beliebig genaue mathematische Operationen bietet PHP BCMath, das Zahlen
von beliebiger Länge und Genauigkeit mit bis zu
2147483647 (oder 0x7FFFFFFF)
Dezimalstellen unterstützt, falls genügend Speicherplatz vorhanden ist,
dargestellt als String.
Gültige (&dh; wohlgeformte) BCMath-Zahlen sind Strings, die auf den
regulären Ausdruck /^[+-]?[0-9]*(\.[0-9]*)?$/ passen.
Die Übergabe von Werten vom Typ float an eine BCMath-Funktion,
die einen String als Operanden erwartet, funktioniert
aufgrund der Art, wie PHP float-Werte in Strings
konvertiert, möglicherweise nicht wie erwartet, nämlich dass der
String u. U. in exponentieller Notation vorliegt (was von
BCMath nicht unterstützt wird), und dass der Dezimaltrenner vor PHP 8.0.0
von der Locale abhängt (wohingegen BCMath immer einen Dezimalpunkt
erwartet).
'0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'
setlocale(LC_NUMERIC, 'de_DE'); // verwendet ein Dezimalkomma
$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;