PHP 8.4.3 Released!

BcMath\Number::sub

(PHP 8 >= 8.4.0)

BcMath\Number::subSubtracts an arbitrary precision number

说明

public BcMath\Number::sub(BcMath\Number|string|int $num, ?int $scale = null): BcMath\Number

Subtracts num from $this.

参数

num
The value to subtract.
scale
scale explicitly specified for calculation results. If null, the scale of the calculation result will be set automatically.

返回值

Returns the result of subtraction as a new BcMath\Number object.

When the BcMath\Number::scale of the result object is automatically set, the greater BcMath\Number::scale of the two numbers used for subtraction is used.

That is, if the BcMath\Number::scales of two values are 2 and 5 respectively, the BcMath\Number::scale of the result will be 5.

错误/异常

This method throws a ValueError in the following cases:

  • num is string and not a well-formed BCMath numeric string
  • scale is outside the valid range

示例

示例 #1 BcMath\Number::sub() example when scale is not specified

<?php
$number
= new BcMath\Number('1.234');

$ret1 = $number->sub(new BcMath\Number('2.34567'));
$ret2 = $number->sub('-3.456');
$ret3 = $number->sub(7);

var_dump($number, $ret1, $ret2, $ret3);
?>

以上示例会输出:

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(5) "1.234"
  ["scale"]=>
  int(3)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(8) "-1.11167"
  ["scale"]=>
  int(5)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(5) "4.690"
  ["scale"]=>
  int(3)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(6) "-5.766"
  ["scale"]=>
  int(3)
}

示例 #2 BcMath\Number::sub() example of explicitly specifying scale

<?php
$number
= new BcMath\Number('1.234');

$ret1 = $number->sub(new BcMath\Number('2.34567'), 1);
$ret2 = $number->sub('-3.456', 10);
$ret3 = $number->sub(7, 0);

var_dump($number, $ret1, $ret2, $ret3);
?>

以上示例会输出:

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(5) "1.234"
  ["scale"]=>
  int(3)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(4) "-1.1"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(12) "4.6900000000"
  ["scale"]=>
  int(10)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(2) "-5"
  ["scale"]=>
  int(0)
}

参见

添加备注

用户贡献的备注

此页面尚无用户贡献的备注。
To Top