| @@ 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 |
|