bcdiv

(PHP 4, PHP 5, PHP 7)

bcdiv Операция деления для чисел произвольной точности

Описание

string bcdiv ( string $left_operand , string $right_operand [, int $scale = int ] )

Делит left_operand на right_operand.

Список параметров

left_operand

Левый операнд в виде строки.

right_operand

Правый операнд в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Вы также можете установить этот параметр глобально для всех функций с помощью bcscale().

Возвращаемые значения

Возвращает результат деления в виде строки или NULL, если right_operand равен 0.

Примеры

Пример #1 Пример использования bcdiv()

<?php

echo bcdiv('105''6.55957'3);  // 16.007

?>

Смотрите также

  • bcmul() - Умножение двух чисел с произвольной точностью

Коментарии

Автор:
Perhaps some one can find useful this function to compute the modular inverse of a integer (extended euclidean algorithm):

  function invmod($a,$b) {
    $n=$b;
    $x=0; $lx=1; $y=1; $ly=0;
    while ($b) {
      $t=$b;
      $q=bcdiv($a,$b,0);
      $b=bcmod($a,$b);
      $a=$t;
      $t=$x; $x=bcsub($lx,bcmod(bcmul($q,$x),$n)); $lx=$t;
      $t=$y; $y=bcsub($ly,bcmod(bcmul($q,$y),$n)); $ly=$t;
    }
    if (bccomp($lx,0) == -1)
      $lx=bcadd($lx,$n);
    return $lx;
  }

  // verify

  $n="2447995268898324993537772139997802321";
  $t="64941057316178801556773346239351236811";
  $m="123456789";
  $i=invmod($t,$n);
  // (t*m)*inv(t) is m
  echo bcmod(bcmul(bcmod(bcmul($t,$m),$n),$i),$n) == $m;
2008-01-18 05:29:14
http://php5.kiev.ua/manual/ru/function.bcdiv.html

    Поддержать сайт на родительском проекте КГБ