1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00

Extend the maximum precision round can handle by one digit

Closes #12222
This commit is contained in:
Saki Takamachi
2024-02-23 01:12:25 +09:00
parent 3693ad2d93
commit 703ead5a26
2 changed files with 43 additions and 43 deletions

View File

@@ -199,7 +199,7 @@ PHPAPI double _php_math_round(double value, int places, int mode) {
fesetround(cpu_round_mode);
/* This value is beyond our precision, so rounding it is pointless */
if (fabs(tmp_value) >= 1e15) {
if (fabs(tmp_value) >= 1e16) {
return value;
}

View File

@@ -82,65 +82,65 @@ foreach ($testCases as $mode => $cases) {
?>
--EXPECT--
========== PHP_ROUND_HALF_UP ==========
float(0.12345678901234565)
float(-0.12345678901234565)
float(12345678901234564)
float(-12345678901234564)
float(4503599627370495.5)
float(-4503599627370495.5)
float(0.1234567890123457)
float(-0.1234567890123457)
float(12345678901234570)
float(-12345678901234570)
float(4503599627370496)
float(-4503599627370496)
========== PHP_ROUND_HALF_DOWN ==========
float(0.12345678901234565)
float(-0.12345678901234565)
float(12345678901234564)
float(-12345678901234564)
float(4503599627370495.5)
float(-4503599627370495.5)
float(0.1234567890123456)
float(-0.1234567890123456)
float(12345678901234560)
float(-12345678901234560)
float(4503599627370495)
float(-4503599627370495)
========== PHP_ROUND_HALF_EVEN ==========
float(0.12345678901234565)
float(-0.12345678901234565)
float(12345678901234564)
float(-12345678901234564)
float(4503599627370495.5)
float(-4503599627370495.5)
float(0.1234567890123456)
float(-0.1234567890123456)
float(12345678901234560)
float(-12345678901234560)
float(4503599627370496)
float(-4503599627370496)
========== PHP_ROUND_HALF_ODD ==========
float(0.12345678901234565)
float(-0.12345678901234565)
float(12345678901234564)
float(-12345678901234564)
float(4503599627370495.5)
float(-4503599627370495.5)
float(0.1234567890123457)
float(-0.1234567890123457)
float(12345678901234570)
float(-12345678901234570)
float(4503599627370495)
float(-4503599627370495)
========== PHP_ROUND_AWAY_FROM_ZERO ==========
float(0.1234567890123456)
float(-0.1234567890123456)
float(12345678901234568)
float(-12345678901234568)
float(4503599627370495.5)
float(-4503599627370495.5)
float(12345678901234570)
float(-12345678901234570)
float(4503599627370496)
float(-4503599627370496)
========== PHP_ROUND_TOWARD_ZERO ==========
float(0.12345678901234566)
float(-0.12345678901234566)
float(12345678901234564)
float(-12345678901234564)
float(4503599627370495.5)
float(-4503599627370495.5)
float(0.1234567890123456)
float(-0.1234567890123456)
float(12345678901234560)
float(-12345678901234560)
float(4503599627370495)
float(-4503599627370495)
========== PHP_ROUND_CEILING ==========
float(0.1234567890123456)
float(-0.1234567890123456)
float(12345678901234564)
float(-12345678901234564)
float(4503599627370495.5)
float(-4503599627370495.5)
float(12345678901234570)
float(-12345678901234560)
float(4503599627370496)
float(-4503599627370495)
========== PHP_ROUND_FLOOR ==========
float(0.1234567890123456)
float(-0.1234567890123456)
float(12345678901234564)
float(-12345678901234564)
float(4503599627370495.5)
float(-4503599627370495.5)
float(12345678901234560)
float(-12345678901234570)
float(4503599627370495)
float(-4503599627370496)