BC Math
PHP Manual

Introduction

For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision up to 2147483647 (or 0x7FFFFFFF) decimals, if there is sufficient memory, represented as strings.

Caution

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).

<?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'); // uses a decimal comma
$num2 1.2// (string) 1.2 => '1,2'
echo bcsub($num1$num21); // => '0.0'
?>

BC Math
PHP Manual