PHP.mk документација

bcmod

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.bcmod.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.bcmod.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
bcmod

Референца за `function.bcmod.php` со подобрена типографија и навигација.

function.bcmod.php

bcmod

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmodЗеми го модулот на број со произволна прецизност

= NULL

bcmod(string $num1, string $num2, ?int $scale = null): string

Земи го остатокот од делење num1 by num2. Резултатот го има истиот знак како num1.

Параметри

num1

Левиот операнд, како стринг.

num2

Десниот операнд, како стринг.

scale
Овој параметар се користи за поставување на бројот на цифри по децималната точка во резултатот. Ако null, тоа ќе се стандардно постави на стандардната скала поставена со bcscale(), или ќе се врати на вредноста на bcmath.scale INI директивата.

Вратени вредности

Враќа модул како стринг.

Errors/Exceptions

Оваа функција фрла ValueError во следниве случаи:

  • num1 or num2 не е добро формиран BCMath нумерички стринг.
  • scale е надвор од валидниот опсег.

Оваа функција фрла DivisionByZeroError Враќа асоцијативен низ со клучеви црвена, зелена, сина и алфа кои ги содржат соодветните вредности за одредениот индекс на бојата. num2 is 0.

Дневник на промени

Верзија = NULL
8.0.0 scale сега е null.
8.0.0 Делење со 0 сега фрла DivisionByZeroError исклучок наместо да враќа null.
7.2.0 num1 and num2 веќе не се скратуваат на цел број, така што сега однесувањето на bcmod() follows fmod() отколку % operator.
7.2.0 На scale параметар беше додаден.

Примери

Пример #1 bcmod() example

<?php
bcscale
(0);
echo
bcmod( '5', '3'); // 2
echo bcmod( '5', '-3'); // 2
echo bcmod('-5', '3'); // -2
echo bcmod('-5', '-3'); // -2
?>

Пример #2 bcmod() со децимали

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

Види Исто така

  • bcdiv() - Подели два броја со произволна прецизност
  • bcdivmod() - Земи го количникот и остатокот од број со произволна прецизност
  • BcMath\Number::mod() - Земи го модулот на број со произволна прецизност

Белешки од корисници 2 забелешки

lauris at night dot lt
пред 22 години
<?php
/**
 * my_bcmod - get modulus (substitute for bcmod)
 * string my_bcmod ( string left_operand, int modulus )
 * left_operand can be really big, but be carefull with modulus :(
 * by Andrius Baranauskas and Laurynas Butkus :) Vilnius, Lithuania
 **/
function my_bcmod( $x, $y )
{
    // how many numbers to take at once? carefull not to exceed (int)
    $take = 5;     
    $mod = '';

    do
    {
        $a = (int)$mod.substr( $x, 0, $take );
        $x = substr( $x, $take );
        $mod = $a % $y;    
    } 
    while ( strlen($x) );

    return (int)$mod;
}

// example
echo my_bcmod( "7044060001970316212900", 150 );
?>
drahoszdenek at gmail dot com
пред 13 години
The modulus can be only integer. For "floats" bcmod returns 0:

<?php
echo bcmod('10', '2.1'); // 0
?>

For real modulus you can use BN-PHP project (hosted at Bitbucket):

<?php
$eval = new \BN\Expression\ExpressionEvaluator();
$operators = new \BN\Expression\OperatorsFactory();
$eval->setOperators($operators->getOperators(array('%')));
        
echo $eval->evaluate('10 % 2.1'); // 1.6
echo $eval->evaluate('10 % -2.1'); // 1.6
echo $eval->evaluate('-10 % 2.1'); // -1.6
echo $eval->evaluate('-10 % -2.1'); // -1.6
?>
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.