(PHP 4, PHP 5, PHP 7, PHP 8)
bcsub — Soustrait un nombre de grande taille d'un autre
Soustrait num2
de num1.
num1L'opérande gauche, sous la forme d'une chaîne de caractères.
num2L'opérande droit, sous la forme d'une chaîne de caractères.
scale
Ce paramètre est utilisé pour définir le nombre de chiffres après la virgule dans le résultat.
Si null , il prendra la valeur par défaut de l'échelle définie avec bcscale() ,
ou utilisera la valeur de la directive INI
bcmath.scale si disponible.
Le résultat de la soustraction, sous la forme d'une chaîne de caractères.
Cette fonction lève une exception ValueError dans les cas suivants :
num1 ou num2
n'est pas une chaîne numérique BCMath correctement formée.
scale est en dehors de la plage valide.
| Version | Description |
|---|---|
| 8.0.0 |
scale est désormais nullable.
|
Exemple #1 Exemple avec bcsub()
<?php
$a = '1.234';
$b = '5';
echo bcsub($a, $b); // -3
echo bcsub($a, $b, 4); // -3.7660
?>
The parameter order here is probably fairly obvious to most people (subtract right from left), but to clarify with a simple use case since I was struggling with this at the end of a long day:
<?php
echo bcsub('7', '5'); // 7 - 5 = '2'
echo bcsub('12', '17'); // 12 - 17 = '-5'
?>
Provide the parameters in the same order you would when using a normal subtraction operator.Please note that bcsub will fail in non-obvious ways if it's fed something that cannot be converted to a number. For instance:
bcsub('yes', 'no') === '0'
Yes, if you put garbage in, you get garbage out. Just don't expect bcsub to throw an error when you feed it an entirely non-numeric value.