@@ -55,15 +55,24 @@ public static function convertScientificNotationToString($number)
5555 } else {
5656 $ number = self ::mul ($ pow , $ regs [1 ], $ scale );
5757 }
58- // remove unnecessary 0 from 0.000 is a 0
59- $ number = rtrim ($ number , '0 ' );
60- // if you remove 0 you must clean dot
61- $ number = rtrim ($ number , '. ' );
58+ // remove unnecessary 0 and dot from 0.000 is a 0
59+ $ number = self ::trimTrailingZeroes ($ number );
6260 }
6361
6462 return self ::checkNumber ($ number );
6563 }
6664
65+ /**
66+ * @param int|string|float $number
67+ * @return void
68+ */
69+ private static function trimTrailingZeroes ($ number ) {
70+ if (false !== strpos ($ number , '. ' )) {
71+ $ number = rtrim ($ number , '0 ' );
72+ }
73+ return rtrim ($ number , '. ' ) ?: '0 ' ;
74+ }
75+
6776 /**
6877 * @param int|string|float $number
6978 * @return int
@@ -441,7 +450,7 @@ public static function floor($number)
441450 */
442451 private static function checkIsFloatCleanZeros (&$ number )
443452 {
444- return false !== strpos ($ number = rtrim ( rtrim ( $ number, ' 0 ' ), ' . ' ), '. ' );
453+ return false !== strpos ($ number = self :: trimTrailingZeroes ( $ number ), '. ' );
445454 }
446455
447456 /**
0 commit comments