PHP 8.4.2 Released!

bcsub

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsubSubtrahiert zwei Zahlen beliebiger Genauigkeit

Beschreibung

bcsub(string $num1, string $num2, ?int $scale = null): string

Subtrahiert num2 von num1.

Parameter-Liste

num1

Der linke Operand als Zeichenkette.

num2

Der rechte Operand als Zeichenkette.

scale
Dieser Parameter wird verwendet, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Falls null, wird die mit bcscale() definierte Standard-Genauigkeit verwendet oder auf den Wert der INI-Direktive bcmath.scale zurückgegriffen.

Rückgabewerte

Das Ergebnis der Subtraktion als Zeichenkette.

Fehler/Exceptions

Diese Funktion löst in den folgenden Fällen einen ValueError aus:

  • num1 oder num2 ist keine wohlgeformte numerische BCMath-Zeichenkette.
  • scale liegt außerhalb des gültigen Bereichs.

Changelog

Version Beschreibung
8.0.0 scale ist jetzt nullbar.

Beispiele

Beispiel #1 bcsub()-Beispiel

<?php

$a
= '1.234';
$b = '5';

echo
bcsub($a, $b); // -3
echo bcsub($a, $b, 4); // -3.7660

?>

Siehe auch

  • bcadd() - Addition zweier Zahlen beliebiger Genauigkeit

add a note

User Contributed Notes 2 notes

up
7
nd at snackbox dot org
6 years ago
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.
up
0
charles dot adrian dot wood at gmail dot com
5 years ago
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.
To Top