Skip to content

Commit

Permalink
Fixed trimming of trailing zeros and dot (leaving trailing zeros when…
Browse files Browse the repository at this point in the history
… no dot is present). (#29)
  • Loading branch information
jimmy4o4 authored and krowinski committed Apr 15, 2019
1 parent 9d435fd commit d07e18c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
19 changes: 14 additions & 5 deletions src/BCMathExtended/BC.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,24 @@ public static function convertScientificNotationToString($number)
} else {
$number = self::mul($pow, $regs[1], $scale);
}
// remove unnecessary 0 from 0.000 is a 0
$number = rtrim($number, '0');
// if you remove 0 you must clean dot
$number = rtrim($number, '.');
// remove unnecessary 0 and dot from 0.000 is a 0
$number = self::trimTrailingZeroes($number);
}

return self::checkNumber($number);
}

/**
* @param int|string|float $number
* @return void
*/
private static function trimTrailingZeroes($number) {
if (false !== strpos($number, '.')) {
$number = rtrim($number, '0');
}
return rtrim($number, '.') ?: '0';
}

/**
* @param int|string|float $number
* @return int
Expand Down Expand Up @@ -441,7 +450,7 @@ public static function floor($number)
*/
private static function checkIsFloatCleanZeros(&$number)
{
return false !== strpos($number = rtrim(rtrim($number, '0'), '.'), '.');
return false !== strpos($number = self::trimTrailingZeroes($number), '.');
}

/**
Expand Down
1 change: 1 addition & 0 deletions tests/Unit/BCTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public function scientificNotationProvider()
'-7.491687627771507445838618797279002344648652959333491e+8',
],
['1.3333', '0.13333e+01'],
['100', '1e+2'],
// some rubbish..
['23', '23.1.23.0e+0..3123131'], //hmm
['345600000000', '3.456e11'],
Expand Down

0 comments on commit d07e18c

Please sign in to comment.