1
0
mirror of https://github.com/php/doc-ja.git synced 2026-04-24 08:28:13 +02:00
Files
archived-doc-ja/reference/bc/functions/bcround.xml
T
2025-03-01 09:16:31 +09:00

292 lines
8.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 15b93836d93f01ea6d90a68cacf04ce0d9fb8eff Maintainer: saki Status: ready -->
<refentry xml:id="function.bcround" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude">
<refnamediv>
<refname>bcround</refname>
<refpurpose>任意精度数値を丸める</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>bcround</methodname>
<methodparam><type>string</type><parameter>num</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>precision</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>RoundingMode</type><parameter>mode</parameter><initializer>RoundingMode::HalfAwayFromZero</initializer></methodparam>
</methodsynopsis>
<simpara>
<parameter>num</parameter> を、指定した <parameter>precision</parameter>(小数点以下の桁数)に丸めた値を返します。
<parameter>precision</parameter> を負またはゼロ(デフォルト) とすることも可能です。
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.round')/db:refsect1[@role='parameters']/descendant::db:varlistentry[1])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.round')/db:refsect1[@role='parameters']/descendant::db:varlistentry[2])" />
<xi:include xpointer="bcmath-number.round..parameters.mode" />
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
<parameter>num</parameter> を指定された精度へ丸めた数値を表す文字列を返します。
</simpara>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
この関数は、以下の場合に <classname>ValueError</classname> をスローします:
<simplelist>
<member><parameter>num</parameter> が、BCMath で有効でない数値形式の文字列である場合</member>
<member>無効な <parameter>mode</parameter> を指定した場合</member>
</simplelist>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title><function>bcround</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
var_dump(bcround('3.4'));
var_dump(bcround('3.5'));
var_dump(bcround('3.6'));
var_dump(bcround('3.6', 0));
var_dump(bcround('5.045', 2));
var_dump(bcround('5.055', 2));
var_dump(bcround('345', -2));
var_dump(bcround('345', -3));
var_dump(bcround('678', -2));
var_dump(bcround('678', -3));
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
string(1) "3"
string(1) "4"
string(1) "4"
string(1) "4"
string(4) "5.05"
string(4) "5.06"
string(3) "300"
string(1) "0"
string(3) "700"
string(4) "1000"
]]>
</screen>
</example>
<example>
<title>
<function>bcround</function> で異なる <parameter>precision</parameter> を指定した例
</title>
<programlisting role="php">
<![CDATA[
<?php
$number = '123.45';
var_dump(bcround($number, 3));
var_dump(bcround($number, 2));
var_dump(bcround($number, 1));
var_dump(bcround($number, 0));
var_dump(bcround($number, -1));
var_dump(bcround($number, -2));
var_dump(bcround($number, -3));
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
string(7) "123.450"
string(6) "123.45"
string(5) "123.5"
string(3) "123"
string(3) "120"
string(3) "100"
string(1) "0"
]]>
</screen>
</example>
<example>
<title>
<function>bcround</function> で異なる <parameter>mode</parameter> を指定した例
</title>
<programlisting role="php">
<![CDATA[
<?php
echo 'Rounding modes with 9.5' . PHP_EOL;
var_dump(bcround('9.5', 0, RoundingMode::HalfAwayFromZero));
var_dump(bcround('9.5', 0, RoundingMode::HalfTowardsZero));
var_dump(bcround('9.5', 0, RoundingMode::HalfEven));
var_dump(bcround('9.5', 0, RoundingMode::HalfOdd));
var_dump(bcround('9.5', 0, RoundingMode::TowardsZero));
var_dump(bcround('9.5', 0, RoundingMode::AwayFromZero));
var_dump(bcround('9.5', 0, RoundingMode::NegativeInfinity));
var_dump(bcround('9.5', 0, RoundingMode::PositiveInfinity));
echo PHP_EOL;
echo 'Rounding modes with 8.5' . PHP_EOL;
var_dump(bcround('8.5', 0, RoundingMode::HalfAwayFromZero));
var_dump(bcround('8.5', 0, RoundingMode::HalfTowardsZero));
var_dump(bcround('8.5', 0, RoundingMode::HalfEven));
var_dump(bcround('8.5', 0, RoundingMode::HalfOdd));
var_dump(bcround('8.5', 0, RoundingMode::TowardsZero));
var_dump(bcround('8.5', 0, RoundingMode::AwayFromZero));
var_dump(bcround('8.5', 0, RoundingMode::NegativeInfinity));
var_dump(bcround('8.5', 0, RoundingMode::PositiveInfinity));
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Rounding modes with 9.5
string(2) "10"
string(1) "9"
string(2) "10"
string(1) "9"
string(1) "9"
string(2) "10"
string(1) "9"
string(2) "10"
Rounding modes with 8.5
string(1) "9"
string(1) "8"
string(1) "8"
string(1) "9"
string(1) "8"
string(1) "9"
string(1) "8"
string(1) "9"
]]>
</screen>
</example>
<example>
<title>
<function>bcround</function><parameter>precision</parameter> を指定し、
異なる <parameter>mode</parameter> を指定した例
</title>
<programlisting role="php">
<![CDATA[
<?php
echo 'Using RoundingMode::HalfAwayFromZero with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::HalfAwayFromZero));
var_dump(bcround(-1.55, 1, RoundingMode::HalfAwayFromZero));
echo PHP_EOL;
echo 'Using RoundingMode::HalfTowardsZero with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::HalfTowardsZero));
var_dump(bcround(-1.55, 1, RoundingMode::HalfTowardsZero));
echo PHP_EOL;
echo 'Using RoundingMode::HalfEven with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::HalfEven));
var_dump(bcround(-1.55, 1, RoundingMode::HalfEven));
echo PHP_EOL;
echo 'Using RoundingMode::HalfOdd with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::HalfOdd));
var_dump(bcround(-1.55, 1, RoundingMode::HalfOdd));
echo PHP_EOL;
echo 'Using RoundingMode::TowardsZero with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::TowardsZero));
var_dump(bcround(-1.55, 1, RoundingMode::TowardsZero));
echo PHP_EOL;
echo 'Using RoundingMode::AwayFromZero with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::AwayFromZero));
var_dump(bcround(-1.55, 1, RoundingMode::AwayFromZero));
echo PHP_EOL;
echo 'Using RoundingMode::NegativeInfinity with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::NegativeInfinity));
var_dump(bcround(-1.55, 1, RoundingMode::NegativeInfinity));
echo PHP_EOL;
echo 'Using RoundingMode::PositiveInfinity with 1 decimal digit precision' . PHP_EOL;
var_dump(bcround( 1.55, 1, RoundingMode::PositiveInfinity));
var_dump(bcround(-1.55, 1, RoundingMode::PositiveInfinity));
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Using RoundingMode::HalfAwayFromZero with 1 decimal digit precision
string(3) "1.6"
string(4) "-1.6"
Using RoundingMode::HalfTowardsZero with 1 decimal digit precision
string(3) "1.5"
string(4) "-1.5"
Using RoundingMode::HalfEven with 1 decimal digit precision
string(3) "1.6"
string(4) "-1.6"
Using RoundingMode::HalfOdd with 1 decimal digit precision
string(3) "1.5"
string(4) "-1.5"
Using RoundingMode::TowardsZero with 1 decimal digit precision
string(3) "1.5"
string(4) "-1.5"
Using RoundingMode::AwayFromZero with 1 decimal digit precision
string(3) "1.6"
string(4) "-1.6"
Using RoundingMode::NegativeInfinity with 1 decimal digit precision
string(3) "1.5"
string(4) "-1.6"
Using RoundingMode::PositiveInfinity with 1 decimal digit precision
string(3) "1.6"
string(4) "-1.5"
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>bcceil</function></member>
<member><function>bcfloor</function></member>
<member><methodname>BcMath\Number::round</methodname></member>
</simplelist>
</refsect1>
</refentry>
<!-- 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
-->