|
1 | 1 | <?xml version="1.0" encoding="utf-8"?>
|
2 | 2 | <!-- $Revision$ -->
|
3 |
| -<!-- EN-Revision: 6406cc6c50f8f66f7d55f550dc1ec2759e2eca0f Maintainer: hirokawa Status: ready --> |
| 3 | +<!-- EN-Revision: 15b93836d93f01ea6d90a68cacf04ce0d9fb8eff Maintainer: hirokawa Status: ready --> |
4 | 4 | <!-- CREDITS: takagi,mumumu -->
|
5 | 5 | <refentry xml:id="function.round" xmlns="http://docbook.org/ns/docbook">
|
6 | 6 | <refnamediv>
|
|
13 | 13 | <type>float</type><methodname>round</methodname>
|
14 | 14 | <methodparam><type class="union"><type>int</type><type>float</type></type><parameter>num</parameter></methodparam>
|
15 | 15 | <methodparam choice="opt"><type>int</type><parameter>precision</parameter><initializer>0</initializer></methodparam>
|
16 |
| - <methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer><constant>PHP_ROUND_HALF_UP</constant></initializer></methodparam> |
| 16 | + <methodparam choice="opt"><type class="union"><type>int</type><type>RoundingMode</type></type><parameter>mode</parameter><initializer>RoundingMode::HalfAwayFromZero</initializer></methodparam> |
17 | 17 | </methodsynopsis>
|
18 | 18 | <para>
|
19 | 19 | <parameter>num</parameter> を、指定した
|
|
76 | 76 | <term><parameter>mode</parameter></term>
|
77 | 77 | <listitem>
|
78 | 78 | <para>
|
79 |
| - 次の定数のいずれかを使って、丸めのモードを指定します。 |
| 79 | + <enumname>RoundingMode</enumname> もしくは次の定数のいずれかを使って、丸めのモードを指定します。 |
80 | 80 | <informaltable>
|
81 | 81 | <tgroup cols="2">
|
82 | 82 | <thead>
|
|
121 | 121 | </tbody>
|
122 | 122 | </tgroup>
|
123 | 123 | </informaltable>
|
| 124 | + ただし、新規に追加されたいくつかのモードは <enumname>RoundingMode</enumname> にのみ存在します。 |
124 | 125 | </para>
|
125 | 126 | </listitem>
|
126 | 127 | </varlistentry>
|
|
134 | 135 | </para>
|
135 | 136 | </refsect1>
|
136 | 137 |
|
| 138 | + <refsect1 role="errors"> |
| 139 | + &reftitle.errors; |
| 140 | + <simpara> |
| 141 | + この関数は、無効な <parameter>mode</parameter> が指定された場合に <exceptionname>ValueError</exceptionname> をスローします。 |
| 142 | + PHP 8.4.0 より前では、、エラーにはならずに <constant>PHP_ROUND_HALF_UP</constant> を使用していました。 |
| 143 | + </simpara> |
| 144 | + </refsect1> |
| 145 | + |
137 | 146 | <refsect1 role="changelog">
|
138 | 147 | &reftitle.changelog;
|
139 | 148 | <informaltable>
|
|
145 | 154 | </row>
|
146 | 155 | </thead>
|
147 | 156 | <tbody>
|
| 157 | + <row> |
| 158 | + <entry>8.4.0</entry> |
| 159 | + <entry> |
| 160 | + 新しい4つのモードが追加されました。 |
| 161 | + </entry> |
| 162 | + </row> |
| 163 | + <row> |
| 164 | + <entry>8.4.0</entry> |
| 165 | + <entry> |
| 166 | + 無効な <parameter>mode</parameter> が指定された場合に <exceptionname>ValueError</exceptionname> をスローするようになりました。 |
| 167 | + </entry> |
| 168 | + </row> |
148 | 169 | <row>
|
149 | 170 | <entry>8.0.0</entry>
|
150 | 171 | <entry>
|
@@ -314,6 +335,61 @@ float(-1.5)
|
314 | 335 | ]]>
|
315 | 336 | </screen>
|
316 | 337 | </example>
|
| 338 | + <example> |
| 339 | + <title><enumname>RoundingMode</enumname> を使用した例</title> |
| 340 | + <programlisting role="php"> |
| 341 | +<![CDATA[ |
| 342 | +<?php |
| 343 | +foreach (RoundingMode::cases() as $mode) { |
| 344 | + foreach ([ |
| 345 | + 8.5, |
| 346 | + 9.5, |
| 347 | + -3.5, |
| 348 | + ] as $number) { |
| 349 | + printf("%-17s: %+.17g -> %+.17g\n", $mode->name, $number, round($number, 0, $mode)); |
| 350 | + } |
| 351 | + echo "\n"; |
| 352 | +} |
| 353 | +?> |
| 354 | +]]> |
| 355 | + </programlisting> |
| 356 | + &example.outputs; |
| 357 | + <screen role="php"> |
| 358 | +<![CDATA[ |
| 359 | +HalfAwayFromZero : +8.5 -> +9 |
| 360 | +HalfAwayFromZero : +9.5 -> +10 |
| 361 | +HalfAwayFromZero : -3.5 -> -4 |
| 362 | +
|
| 363 | +HalfTowardsZero : +8.5 -> +8 |
| 364 | +HalfTowardsZero : +9.5 -> +9 |
| 365 | +HalfTowardsZero : -3.5 -> -3 |
| 366 | +
|
| 367 | +HalfEven : +8.5 -> +8 |
| 368 | +HalfEven : +9.5 -> +10 |
| 369 | +HalfEven : -3.5 -> -4 |
| 370 | +
|
| 371 | +HalfOdd : +8.5 -> +9 |
| 372 | +HalfOdd : +9.5 -> +9 |
| 373 | +HalfOdd : -3.5 -> -3 |
| 374 | +
|
| 375 | +TowardsZero : +8.5 -> +8 |
| 376 | +TowardsZero : +9.5 -> +9 |
| 377 | +TowardsZero : -3.5 -> -3 |
| 378 | +
|
| 379 | +AwayFromZero : +8.5 -> +9 |
| 380 | +AwayFromZero : +9.5 -> +10 |
| 381 | +AwayFromZero : -3.5 -> -4 |
| 382 | +
|
| 383 | +NegativeInfinity : +8.5 -> +8 |
| 384 | +NegativeInfinity : +9.5 -> +9 |
| 385 | +NegativeInfinity : -3.5 -> -4 |
| 386 | +
|
| 387 | +PositiveInfinity : +8.5 -> +9 |
| 388 | +PositiveInfinity : +9.5 -> +10 |
| 389 | +PositiveInfinity : -3.5 -> -3 |
| 390 | +]]> |
| 391 | + </screen> |
| 392 | + </example> |
317 | 393 | </para>
|
318 | 394 | </refsect1>
|
319 | 395 |
|
|
0 commit comments