bcdivmod

任意精度数値の商と剰余を取得する

説明

array bcdivmod(string $num1, string $num2, intnull $scale = null)

num1num2 で割った商と剰余を取得します。

パラメータ

num1

被除数を表す文字列。

num2

割る数を表す文字列。

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

戻り値

1つ目の要素に商の値を表す string が、2つ目の要素に剰余の値を表す string が格納された配列を返します。

エラー / 例外

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

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

この関数は、 num20 である場合、 DivisionByZeroError 例外をスローします。

例1 bcdivmod の例

<?php
bcscale(0);

[$quot, $rem] = bcdivmod('5',  '3');
echo $quot; // 1
echo $rem;  // 2

[$quot, $rem] = bcdivmod('5',  '-3');
echo $quot; // -1
echo $rem;  // 2

[$quot, $rem] = bcdivmod('-5',  '3');
echo $quot; // -1
echo $rem;  // -2

[$quot, $rem] = bcdivmod('-5',  '-3');
echo $quot; // 1
echo $rem;  // -2
?>

例2 bcdivmod に小数の値を指定する

<?php
[$quot, $rem] = bcdivmod('5.7', '1.3', 1);
echo $quot; // 4
echo $rem;  // 0.5
?>

参考

  • bcdiv
  • bcmod
  • BcMath\Number::divmod