BC Math
PHP Manual
PHP Manual»Extensions sur les mathématiques»BC Math

Fonctions BCMath

Introduction

Pour les calculs mathématiques d'une grande précision, PHP fournit BCMath, qui supporte n'importe quelle précision et n'importe quelle taille de nombres jusqu'à 2147483647 (ou 0x7FFFFFFF) chiffres décimaux, s'il y a suffisamment de mémoire, représentés sous la forme d'une string.

Les nombres BCMath valides (c.-à-d. bien formés) sont des chaînes qui correspondent à l'expression régulière /^[+-]?[0-9]*(\.[0-9]*)?$/.

Attention

Le passage de valeurs de type float à une fonction BCMath qui attend une string comme opérande peut ne pas avoir l'effet désiré en raison de la façon dont PHP convertit les valeurs float en string, à savoir que la string peut être en notation exponentielle (ce qui n'est pas supporté par BCMath), et que, antérieurement à PHP 8.0.0, le séparateur décimal dépend de la locale (tandis que BCMath attend toujours un point décimal).

<?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'); // utilise une virgule décimale
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>
To Top