diff --git a/reference/bc/book.xml b/reference/bc/book.xml index 639046f244..cd2b44e7ce 100644 --- a/reference/bc/book.xml +++ b/reference/bc/book.xml @@ -13,6 +13,31 @@ For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision up to 2147483647-1 (or 0x7FFFFFFF-1) decimals, represented as strings. + + + Passing values of type float to a BCMath function which expects + a string as operand may not have the desired effect due to the + way PHP converts float values to string, namely + that the string may be in exponential notation (what is not + supported by BCMath), and that the decimal separator is locale dependend + (while BCMath always expects a decimal point). + + + + '0' +$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6' +echo bcadd($num1, $num2, 6); // => '0.000000' + +setlocale(LC_NUMERIC, 'de_DE'); // uses a decimal comma +$num2 = 1.2; // (string) 1.2 => '1,2' +echo bcsub($num1, $num2, 1); // => '0.0' +?> +]]> + + +