|
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | | -<!-- EN-Revision: f721489eaeb79ff096971fe5a5b101c2ebab8eeb Maintainer: shein Status: ready --> |
| 2 | +<!-- EN-Revision: 15b93836d93f01ea6d90a68cacf04ce0d9fb8eff Maintainer: shein Status: ready --> |
3 | 3 | <!-- Reviewed: no --> |
4 | 4 | <refentry xml:id="function.round" xmlns="http://docbook.org/ns/docbook"> |
5 | 5 | <refnamediv> |
|
12 | 12 | <type>float</type><methodname>round</methodname> |
13 | 13 | <methodparam><type class="union"><type>int</type><type>float</type></type><parameter>num</parameter></methodparam> |
14 | 14 | <methodparam choice="opt"><type>int</type><parameter>precision</parameter><initializer>0</initializer></methodparam> |
15 | | - <methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer><constant>PHP_ROUND_HALF_UP</constant></initializer></methodparam> |
| 15 | + <methodparam choice="opt"><type class="union"><type>int</type><type>RoundingMode</type></type><parameter>mode</parameter><initializer>RoundingMode::HalfAwayFromZero</initializer></methodparam> |
16 | 16 | </methodsynopsis> |
17 | 17 | <para> |
18 | 18 | Функция возвращает значение числа <parameter>num</parameter>, |
|
79 | 79 | <term><parameter>mode</parameter></term> |
80 | 80 | <listitem> |
81 | 81 | <para> |
82 | | - Режим округления устанавливают константой из следующего списка: |
| 82 | + Режим округления устанавливают перечислением <enumname>RoundingMode</enumname> или константой из следующего списка: |
83 | 83 | <informaltable> |
84 | 84 | <tgroup cols="2"> |
85 | 85 | <thead> |
|
120 | 120 | </tbody> |
121 | 121 | </tgroup> |
122 | 122 | </informaltable> |
| 123 | + Обратите внимание, отдельные режимы, которые добавили недавно, доступны только в перечислении <link linkend="enum.roundingmode">RoundingMode</link>. |
123 | 124 | </para> |
124 | 125 | </listitem> |
125 | 126 | </varlistentry> |
|
155 | 156 | </row> |
156 | 157 | </thead> |
157 | 158 | <tbody> |
| 159 | + <row> |
| 160 | + <entry>8.4.0</entry> |
| 161 | + <entry> |
| 162 | + Добавили четыре новые режима округления. |
| 163 | + </entry> |
| 164 | + </row> |
158 | 165 | <row> |
159 | 166 | <entry>8.4.0</entry> |
160 | 167 | <entry> |
@@ -338,6 +345,63 @@ float(-1.6) |
338 | 345 | Округление с точностью до 1 знака в режиме PHP_ROUND_HALF_ODD |
339 | 346 | float(1.5) |
340 | 347 | float(-1.5) |
| 348 | +]]> |
| 349 | + </screen> |
| 350 | + </example> |
| 351 | + <example> |
| 352 | + <title>Пример установки режима округления перечислением <enumname>RoundingMode</enumname></title> |
| 353 | + <programlisting role="php"> |
| 354 | +<![CDATA[ |
| 355 | +<?php |
| 356 | +
|
| 357 | +foreach (RoundingMode::cases() as $mode) { |
| 358 | + foreach ([ |
| 359 | + 8.5, |
| 360 | + 9.5, |
| 361 | + -3.5, |
| 362 | + ] as $number) { |
| 363 | + printf("%-17s: %+.17g -> %+.17g\n", $mode->name, $number, round($number, 0, $mode)); |
| 364 | + } |
| 365 | + echo "\n"; |
| 366 | +} |
| 367 | +
|
| 368 | +?> |
| 369 | +]]> |
| 370 | + </programlisting> |
| 371 | + &example.outputs; |
| 372 | + <screen role="php"> |
| 373 | +<![CDATA[ |
| 374 | +HalfAwayFromZero : +8.5 -> +9 |
| 375 | +HalfAwayFromZero : +9.5 -> +10 |
| 376 | +HalfAwayFromZero : -3.5 -> -4 |
| 377 | +
|
| 378 | +HalfTowardsZero : +8.5 -> +8 |
| 379 | +HalfTowardsZero : +9.5 -> +9 |
| 380 | +HalfTowardsZero : -3.5 -> -3 |
| 381 | +
|
| 382 | +HalfEven : +8.5 -> +8 |
| 383 | +HalfEven : +9.5 -> +10 |
| 384 | +HalfEven : -3.5 -> -4 |
| 385 | +
|
| 386 | +HalfOdd : +8.5 -> +9 |
| 387 | +HalfOdd : +9.5 -> +9 |
| 388 | +HalfOdd : -3.5 -> -3 |
| 389 | +
|
| 390 | +TowardsZero : +8.5 -> +8 |
| 391 | +TowardsZero : +9.5 -> +9 |
| 392 | +TowardsZero : -3.5 -> -3 |
| 393 | +
|
| 394 | +AwayFromZero : +8.5 -> +9 |
| 395 | +AwayFromZero : +9.5 -> +10 |
| 396 | +AwayFromZero : -3.5 -> -4 |
| 397 | +
|
| 398 | +NegativeInfinity : +8.5 -> +8 |
| 399 | +NegativeInfinity : +9.5 -> +9 |
| 400 | +NegativeInfinity : -3.5 -> -4 |
| 401 | +
|
| 402 | +PositiveInfinity : +8.5 -> +9 |
| 403 | +PositiveInfinity : +9.5 -> +10 |
| 404 | +PositiveInfinity : -3.5 -> -3 |
341 | 405 | ]]> |
342 | 406 | </screen> |
343 | 407 | </example> |
|
0 commit comments