PHP Conference Japan 2024

bcsub

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

bcsub從另一個任意精度數值中減去一個任意精度數值

說明

bcsub(字串 $num1, 字串 $num2, ?整數 $scale = null): 字串

num1 中減去 num2

參數

num1

左運算元,以字串表示。

num2

右運算元,以字串表示。

scale
此參數用於設定結果中小數點後位數。如果是 null,它將預設為使用 bcscale() 設定的預設精度,或退回到 bcmath.scale INI 指令的值。

返回值

減法運算的結果,以字串形式返回。

錯誤/例外

在以下情況下,此函式會拋出 ValueError 例外:

  • num1num2 不是格式正確的 BCMath 數字字串。
  • scale 超出有效範圍。

更新日誌

版本 說明
8.0.0 scale 現在可以為 null。

範例

範例 #1 bcsub() 範例

<?php

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

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

?>

另請參閱

  • bcadd() - 兩個任意精度數字相加

新增註釋

使用者貢獻的註釋 2 則註釋

nd at snackbox dot org
6 年前
這裡的參數順序對大多數人來說可能相當明顯(從左到右減去),但為了用一個簡單的用例來說明,因為我在漫長的一天結束時還在為此苦苦掙扎

<?php
echo bcsub('7', '5'); // 7 - 5 = '2'
echo bcsub('12', '17'); // 12 - 17 = '-5'
?>

提供參數的順序與使用一般減法運算符時的順序相同。
charles dot adrian dot wood at gmail dot com
5 年前
請注意,如果 bcsub 被饋送無法轉換為數字的內容,它將會以不明顯的方式失敗。例如

bcsub('yes', 'no') === '0'

是的,如果您輸入垃圾,您就會得到垃圾。只是不要期望 bcsub 在您饋送它一個完全非數值時拋出錯誤。
To Top