bcmul

2つの任意精度数値の乗算を行う

説明

string bcmul(string $num1, string $num2, intnull $scale = null)

num1num2 を掛けます。

パラメータ

num1

左オペランドを表す文字列。

num2

右オペランドを表す文字列。

scale
結果の小数点以下の桁数を指定します。null の場合は、 bcscale 関数でグローバルに 設定した桁数をデフォルトとして使用します。 それも設定されていない場合は bcmath.scale INI ディレクティブの値を使用します。

戻り値

結果を文字列で返します。

エラー / 例外

この関数は、以下の場合に ValueError をスローします:

  • num1 もしくは num1 が、BCMath で有効でない数値形式の文字列である場合
  • scale が範囲外の値である場合

変更履歴

バージョン 説明
8.0.0 scale は、nullable になりました。
7.3.0 bcmul 関数が、指定されたスケールの数値を返すようになりました。 これより前のバージョンでは、 返される数値の末尾が 0埋め されることなく、省略される可能性がありました。

例1 bcmul の例

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

注意

注意:

PHP 7.3.0 より前のバージョンでは、 bcmulscale 引数で指定したものより少ない桁数を返す可能性がありました。 これは scale で許された精度が不要な場合にだけ起きていました。 たとえば、以下のような場合です:

例2 bcmul で scale を指定する例

<?php
echo bcmul('5', '2', 2);     // prints "10", not "10.00"
?>

参考

  • bcdiv
  • BcMath\Number::mul