bcdivmod
任意精度数値の商と剰余を取得する
説明
array bcdivmod(string $num1
, string $num2
, intnull $scale
= null
)
num1
を num2
で割った商と剰余を取得します。
パラメータ
-
num1
-
被除数を表す文字列。
-
num2
-
割る数を表す文字列。
-
scale
-
結果の小数点以下の桁数を指定します。
null
の場合は、 bcscale 関数でグローバルに
設定した桁数をデフォルトとして使用します。
それも設定されていない場合は bcmath.scale
INI ディレクティブの値を使用します。
戻り値
1つ目の要素に商の値を表す string が、2つ目の要素に剰余の値を表す string が格納された配列を返します。
エラー / 例外
この関数は、以下の場合に ValueError をスローします:
num1
もしくは num1
が、BCMath で有効でない数値形式の文字列である場合
scale
が範囲外の値である場合
この関数は、 num2
が 0
である場合、
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