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 现在可以为空。

示例

示例 #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