Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor-pro/vendor/brick/math/src/RoundingMode.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 +
3 + declare(strict_types=1);
4 +
5 + namespace Brick\Math;
6 +
7 + /**
8 + * Specifies a rounding behavior for numerical operations capable of discarding precision.
9 + *
10 + * Each rounding mode indicates how the least significant returned digit of a rounded result
11 + * is to be calculated. If fewer digits are returned than the digits needed to represent the
12 + * exact numerical result, the discarded digits will be referred to as the discarded fraction
13 + * regardless the digits' contribution to the value of the number. In other words, considered
14 + * as a numerical value, the discarded fraction could have an absolute value greater than one.
15 + */
16 + final class RoundingMode
17 + {
18 + /**
19 + * Private constructor. This class is not instantiable.
20 + *
21 + * @codeCoverageIgnore
22 + */
23 + private function __construct()
24 + {
25 + }
26 +
27 + /**
28 + * Asserts that the requested operation has an exact result, hence no rounding is necessary.
29 + *
30 + * If this rounding mode is specified on an operation that yields a result that
31 + * cannot be represented at the requested scale, a RoundingNecessaryException is thrown.
32 + */
33 + public const UNNECESSARY = 0;
34 +
35 + /**
36 + * Rounds away from zero.
37 + *
38 + * Always increments the digit prior to a nonzero discarded fraction.
39 + * Note that this rounding mode never decreases the magnitude of the calculated value.
40 + */
41 + public const UP = 1;
42 +
43 + /**
44 + * Rounds towards zero.
45 + *
46 + * Never increments the digit prior to a discarded fraction (i.e., truncates).
47 + * Note that this rounding mode never increases the magnitude of the calculated value.
48 + */
49 + public const DOWN = 2;
50 +
51 + /**
52 + * Rounds towards positive infinity.
53 + *
54 + * If the result is positive, behaves as for UP; if negative, behaves as for DOWN.
55 + * Note that this rounding mode never decreases the calculated value.
56 + */
57 + public const CEILING = 3;
58 +
59 + /**
60 + * Rounds towards negative infinity.
61 + *
62 + * If the result is positive, behave as for DOWN; if negative, behave as for UP.
63 + * Note that this rounding mode never increases the calculated value.
64 + */
65 + public const FLOOR = 4;
66 +
67 + /**
68 + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
69 + *
70 + * Behaves as for UP if the discarded fraction is >= 0.5; otherwise, behaves as for DOWN.
71 + * Note that this is the rounding mode commonly taught at school.
72 + */
73 + public const HALF_UP = 5;
74 +
75 + /**
76 + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
77 + *
78 + * Behaves as for UP if the discarded fraction is > 0.5; otherwise, behaves as for DOWN.
79 + */
80 + public const HALF_DOWN = 6;
81 +
82 + /**
83 + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards positive infinity.
84 + *
85 + * If the result is positive, behaves as for HALF_UP; if negative, behaves as for HALF_DOWN.
86 + */
87 + public const HALF_CEILING = 7;
88 +
89 + /**
90 + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards negative infinity.
91 + *
92 + * If the result is positive, behaves as for HALF_DOWN; if negative, behaves as for HALF_UP.
93 + */
94 + public const HALF_FLOOR = 8;
95 +
96 + /**
97 + * Rounds towards the "nearest neighbor" unless both neighbors are equidistant, in which case rounds towards the even neighbor.
98 + *
99 + * Behaves as for HALF_UP if the digit to the left of the discarded fraction is odd;
100 + * behaves as for HALF_DOWN if it's even.
101 + *
102 + * Note that this is the rounding mode that statistically minimizes
103 + * cumulative error when applied repeatedly over a sequence of calculations.
104 + * It is sometimes known as "Banker's rounding", and is chiefly used in the USA.
105 + */
106 + public const HALF_EVEN = 9;
107 + }
108 +