PHP – 如何使用 bcmod() 函式獲取任意精度數的模?


在 PHP 中,**bcmod()** 數學函式用於計算任意精度數的模。**bcmod()** 函式將任意精度數作為字串,並將結果作為數字的模,並將結果縮放至指定的精度。或者,我們可以說它獲取 **string_num1** 除以 **string_num2** 後的餘數。除非 **string_num2** 為 0,否則結果與 **string_num1** 具有相同的符號。

語法

bcmod(string_$num1, string_$num2, [, int $scale=0])

或者,

bcmod(string $dividend, string $divisor[, int $scale=0])

注意− 以上語法將獲取 **$string_num1** 除以 **$string_num2** 的餘數。除非 **string_num2** 為 0,否則結果與 **string_num1** 具有相同的符號。

引數

**bcmod()** 函式接受兩個不同的引數,**$dividend** 和 **$modulus**。

  • **$dividend−** 它表示被給定模數 $modulus 除的被除數,它是字串型別引數。

  • **$modulus−** 它是字串型別引數,用於表示模數。

返回值

**bcmod()** 函式返回被除數除以模數的餘數。如果模數為 0,則函式返回 null。

示例 1 - 不使用 scale 引數的 bcmod() PHP 函式。

<?php
   // input numbers with arbitrary precision
   $dividend = "25.666";
   $modulus = "7";

   // calculates the modulus
   $result = bcmod($dividend, $modulus);
   echo "Output without using scale value: ", $result;
?>

輸出

Output without using scale value: 4

示例 2 - 使用 scale 引數的 bcmod() PHP 函式

現在,我們將使用 scale 值為 4 的相同輸入值並檢查輸出。

<?php
   // input numbers with arbitrary precision
   $dividend = "25.666";
   $modulus = "7";

   //using scale value 4
   $scaleVal =4;

   // calculates the modulus
   $result = bcmod($dividend, $modulus, $scaleVal);
   echo "Output with scale value: ", $result;
?>

輸出

Output with scale value: 4.6660

示例 3

<?php
   bcscale(1);

   // 0.5 as of PHP 7.2.0; 0 previously
   echo bcmod('5.7', '1.3');
?>

輸出

0.5

注意− scale 引數從 PHP 7.2.0 版本開始新增。

更新於:2021年8月21日

219 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告