Skip to content

Commit 0478e2e

Browse files
committed
number_format() Support rounding negative places
1 parent 96ea06a commit 0478e2e

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

ext/standard/math.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,8 +1030,8 @@ PHPAPI zend_string *_php_math_number_format_ex(double d, int dec, const char *de
10301030
d = -d;
10311031
}
10321032

1033-
dec = MAX(0, dec);
10341033
d = _php_math_round(d, dec, PHP_ROUND_HALF_UP);
1034+
dec = MAX(0, dec);
10351035
tmpbuf = strpprintf(0, "%.*F", dec, d);
10361036
if (tmpbuf == NULL) {
10371037
return NULL;

ext/standard/tests/math/number_format_negative_zero.phpt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,28 @@ Prevent number_format from returning negative zero
44
<?php
55

66
$number = -1.15E-15;
7+
var_dump($number);
8+
var_dump(number_format($number, 2));
79

10+
$number = -0.01;
811
var_dump($number);
912
var_dump(number_format($number, 2));
10-
var_dump(number_format(-0.01, 2));
13+
14+
$number = -1234567.89;
15+
var_dump($number);
16+
var_dump(number_format($number, -3));
17+
18+
$number = -1234321.09;
19+
var_dump($number);
20+
var_dump(number_format($number, -3));
1121

1222
?>
1323
--EXPECT--
1424
float(-1.15E-15)
1525
string(4) "0.00"
26+
float(-0.01)
1627
string(5) "-0.01"
28+
float(-1234567.89)
29+
string(10) "-1,235,000"
30+
float(-1234321.09)
31+
string(10) "-1,234,000"

0 commit comments

Comments
 (0)