1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/reference/bc/book.xml
2025-01-17 03:57:18 +03:00

80 lines
3.3 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: c7e83fbbbcde9f54affc09424d032c38492a3ff4 Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<book xml:id="book.bc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundled" ?>
<title>Модуль математических операций с числами произвольной точности BCMath</title>
<titleabbrev>BC Math</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.bc">
&reftitle.intro;
<para>
Для математических операций с числами произвольной точности PHP предлагает модуль BCMath.
Модуль поддерживает числа произвольного размера с точностью
до <literal>2 147 483 647</literal>, или <literal>0x7FFFFFFF</literal>, десятичных знаков,
если хватит памяти. Модуль представляет числа в виде строк.
</para>
<para>
Допустимые, или правильно сформированные, числа модуля BCMath —
строки, которые соответствуют регулярному выражению:
<literal>/^[+-]?[0-9]*(\.[0-9]*)?$/</literal>.
</para>
<caution>
<para>
Передача <type>float</type>-значений в функции модуля BCMath,
которые ожидают строковый операнд, иногда даёт неожиданные результаты.
Причина состоит в способе, которым PHP преобразовывает значения с плавающей точкой (<type>float</type>)
в строки (<type>string</type>). В ряде преобразований возвращается числовая строка в экспоненциальной нотации
или числовая строка с десятичным разделителем в виде запятой; до PHP 8.0.0 разделитель
дробной части зависел от региональных настроек. Модуль BCMath не поддерживает экспоненциальную нотацию
и работает только с десятичной точкой.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?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'); // Десятичная запятая вместо точки
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>
]]>
</programlisting>
</informalexample>
</caution>
</preface>
<!-- }}} -->
&reference.bc.setup;
&reference.bc.reference;
&reference.bc.bcmath.number;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->