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

Mailparse

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

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

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

book.bc.php

BCMath Математика со произволна прецизност

Вовед

За математика со произволна прецизност, PHP нуди BCMath што поддржува броеви од било која големина и прецизност до 2147483647 (или 0x7FFFFFFF) децимални цифри, ако има доволно меморија, претставени како низи.

Валидни (познати како добро формирани) BCMath броеви се низи што одговараат на регуларниот израз /^[+-]?[0-9]*(\.[0-9]*)?$/.

Безбедност: стандардниот сет на знаци

Проследување вредности од тип float на BCMath функција која очекува string како операнд може да нема посакуван ефект поради начинот на кој PHP конвертира float вредности во string, имено дека string може да биде во експоненцијална нотација (што не е поддржано од BCMath), и дека, пред PHP 8.0.0, децималниот сепаратор зависи од локалот (додека BCMath секогаш очекува децимална точка).

<?php
$num1
= 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'

setlocale(LC_NUMERIC, 'de_DE'); // uses a decimal comma
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>
  • Installing/Configuring
  • BC Математички функции
    • bcadd — Собирање на два броја со произволна прецизност
    • bcceil — Закружување нагоре на број со произволна прецизност
    • bccomp — Споредување на два броја со произволна прецизност
    • bcdiv — Делење на два броја со произволна прецизност
    • bcdivmod — Добивање на количник и остаток од број со произволна прецизност
    • bcfloor — Закружување надолу на број со произволна прецизност
    • bcmod — Добивање на остаток од број со произволна прецизност
    • bcmul — Множење на два броја со произволна прецизност
    • bcpow — Степенаување на број со произволна прецизност на друг
    • bcpowmod — Степенаување на број со произволна прецизност на друг, редуциран со одреден модул
    • bcround — Round arbitrary precision number
    • bcscale — Заокружи број со произволна прецизност
    • bcsqrt — Постави или добиј стандардна вредност за параметарот за скала за сите bc math функции
    • bcsub — Добиј квадратен корен од број со произволна прецизност
  • BcMath\Number — Класата BcMath\Number
    • BcMath\Number::add — Го заокружува произволен број со прецизност
    • BcMath\Number::ceil — Додава произволен број со прецизност
    • BcMath\Number::compare — Го заокружува нагоре произволен број со прецизност
    • BcMath\Number::__construct — Споредува два произволни броја со прецизност
    • BcMath\Number::div — Создава BcMath\Number објект
    • BcMath\Number::divmod — Дели со произволен број со прецизност
    • BcMath\Number::floor — Добива количник и остаток од произволен број со прецизност
    • BcMath\Number::mod — Го заокружува надолу произволен број со прецизност
    • BcMath\Number::mul — Добива остаток од произволен број со прецизност
    • BcMath\Number::pow — Умножува произволен број со прецизност
    • BcMath\Number::powmod — Го крева на степен произволен број со прецизност
    • BcMath\Number::round — Го крева на степен произволен број со прецизност, редуциран со одреден модул
    • BcMath\Number::__serialize — Го заокружува произволен број со прецизност
    • BcMath\Number::sqrt — Сериjализира BcMath\Number објект
    • BcMath\Number::sub — Добива квадратен корен од произволен број со прецизност
    • BcMath\Number::__toString — Одзема произволен број со прецизност
    • BcMath\Number::__unserialize — Десериализира параметар за податоци во BcMath\Number објект

Белешки од корисници 3 белешки

Хејли Вотсон
пред 10 години
This extension is an interface to the GNU implementation as a library of the Basic Calculator utility by Philip Nelson; hence the name.
— Конвертира BcMath\Number во стринг
пред 11 години
Note that when you use implementation of factorial that ClaudiuS made, you get results even if you try to calculate factorial of number that you normally can't, e.g. 2.5, -2, etc. Here is safer implementation:
<?php
/**
 * Calculates a factorial of given number.
 * @param string|int $num
 * @throws InvalidArgumentException
 * @return string
 */
function bcfact($num)
{
    if (!filter_var($num, FILTER_VALIDATE_INT) || $num <= 0) {
        throw new InvalidArgumentException(sprintf('Argument must be natural number, "%s" given.', $num));
    }

    for ($result = '1'; $num > 0; $num--) {
        $result = bcmul($result, $num);
    }

    return $result;
}
?>
ClaudiuS
пред 13 години
Needed to compute some permutations and found the BC extension great but poor on functions, so untill this gets implemented here's the factorial function:

<?php
/* BC FACTORIAL
 * n! = n * (n-1) * (n-2) .. 1 [eg. 5! = 5 * 4 * 3 * 2 * 1 = 120]
 */
function bcfact($n){
    $factorial=$n;
    while (--$n>1) $factorial=bcmul($factorial,$n);
    return $factorial;
}

print bcfact(50); 
//30414093201713378043612608166064768844377641568960512000000000000
?>
На оваа страница

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

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

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

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

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