@@ 308-322 (lines=15) @@ | ||
305 | * @param int $precision |
|
306 | * @return string |
|
307 | */ |
|
308 | public static function roundDown($number, $precision = 0) |
|
309 | { |
|
310 | $number = self::convertScientificNotationToString($number); |
|
311 | $multiply = self::pow(10, (string)abs($precision)); |
|
312 | ||
313 | return $precision < 0 ? |
|
314 | self::mul( |
|
315 | self::floor(self::div($number, $multiply, self::getDecimalsLengthFromNumber($number))), $multiply, |
|
316 | $precision |
|
317 | ) : |
|
318 | self::div( |
|
319 | self::floor(self::mul($number, $multiply, self::getDecimalsLengthFromNumber($number))), $multiply, |
|
320 | $precision |
|
321 | ); |
|
322 | } |
|
323 | ||
324 | /** |
|
325 | * @param int|string $number |
|
@@ 356-370 (lines=15) @@ | ||
353 | * @param int $precision |
|
354 | * @return string |
|
355 | */ |
|
356 | public static function roundUp($number, $precision = 0) |
|
357 | { |
|
358 | $number = self::convertScientificNotationToString($number); |
|
359 | $multiply = self::pow(10, (string)abs($precision)); |
|
360 | ||
361 | return $precision < 0 ? |
|
362 | self::mul( |
|
363 | self::ceil(self::div($number, $multiply, self::getDecimalsLengthFromNumber($number))), $multiply, |
|
364 | $precision |
|
365 | ) : |
|
366 | self::div( |
|
367 | self::ceil(self::mul($number, $multiply, self::getDecimalsLengthFromNumber($number))), $multiply, |
|
368 | $precision |
|
369 | ); |
|
370 | } |
|
371 | ||
372 | /** |
|
373 | * @param int|string $number |