Skip to content

Commit 8a7d59f

Browse files
committed
Merge branch '2.7' into 2.8
* 2.7: [Form] Improve rounding precision [Routing] Ignore hidden directories when loading routes from annotations
2 parents 8be16f2 + 099e2ad commit 8a7d59f

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,8 @@ private function round($number)
266266
if (null !== $this->precision && null !== $this->roundingMode) {
267267
// shift number to maintain the correct scale during rounding
268268
$roundingCoef = pow(10, $this->precision);
269-
$number *= $roundingCoef;
269+
// string representation to avoid rounding errors, similar to bcmul()
270+
$number = (string) ($number * $roundingCoef);
270271

271272
switch ($this->roundingMode) {
272273
case self::ROUND_CEILING:

Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,8 @@ public function reverseTransformWithRoundingProvider()
305305
array(1, '123,44', 123.4, NumberToLocalizedStringTransformer::ROUND_DOWN),
306306
array(1, '-123,45', -123.4, NumberToLocalizedStringTransformer::ROUND_DOWN),
307307
array(1, '-123,44', -123.4, NumberToLocalizedStringTransformer::ROUND_DOWN),
308+
array(2, '37.37', 37.37, NumberToLocalizedStringTransformer::ROUND_DOWN),
309+
array(2, '2.01', 2.01, NumberToLocalizedStringTransformer::ROUND_DOWN),
308310
// round halves (.5) to the next even number
309311
array(0, '1234,6', 1235, NumberToLocalizedStringTransformer::ROUND_HALF_EVEN),
310312
array(0, '1234,5', 1234, NumberToLocalizedStringTransformer::ROUND_HALF_EVEN),

0 commit comments

Comments
 (0)