Introdução

Para matemática de precisão arbitrária, o PHP oferece BCMath, que suporta números de qualquer tamanho e com precisão de até 2147483647 (ou 0x7FFFFFFF) dígitos decimais, até a memória disponível, representadas como strings.

Numéros válido (ou bem formados) são strings que concordam com a expressão regular /^[+-]?[0-9]*(\.[0-9]*)?$/.

Cuidado

Passar valores de tipo float para uma função BCMatch, que espera um operando string pode não funcionar como esperado dado que o PHP converte valores float para string, especificamente que a string convertida pode estar numa notação exponencial (que não é suportado no BCMath), e dado que, anteriormente ao PHP 8.0.0, o separador decimal depende da locale configurada (enquanto BCMath sempre trabalho com ponto).

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

User Contributed Notes 1 note

up
0
Anonymous
4 years ago
Какой дебил писал?
To Top