diff options
Diffstat (limited to 'vendor/commerceguys/intl/src/Calculator.php')
-rw-r--r-- | vendor/commerceguys/intl/src/Calculator.php | 51 |
1 files changed, 24 insertions, 27 deletions
diff --git a/vendor/commerceguys/intl/src/Calculator.php b/vendor/commerceguys/intl/src/Calculator.php index e00a564c1..dca506de9 100644 --- a/vendor/commerceguys/intl/src/Calculator.php +++ b/vendor/commerceguys/intl/src/Calculator.php @@ -24,7 +24,7 @@ final class Calculator * * @return string The result. */ - public static function add($first_number, $second_number, $scale = 6) + public static function add(string $first_number, string $second_number, int $scale = 6): string { self::assertNumberFormat($first_number); self::assertNumberFormat($second_number); @@ -44,7 +44,7 @@ final class Calculator * * @return string The result. */ - public static function subtract($first_number, $second_number, $scale = 6) + public static function subtract(string $first_number, string $second_number, int $scale = 6): string { self::assertNumberFormat($first_number); self::assertNumberFormat($second_number); @@ -64,7 +64,7 @@ final class Calculator * * @return string The result. */ - public static function multiply($first_number, $second_number, $scale = 6) + public static function multiply(string $first_number, string $second_number, int $scale = 6): string { self::assertNumberFormat($first_number); self::assertNumberFormat($second_number); @@ -84,7 +84,7 @@ final class Calculator * * @return string The result. */ - public static function divide($first_number, $second_number, $scale = 6) + public static function divide(string $first_number, string $second_number, int $scale = 6): string { self::assertNumberFormat($first_number); self::assertNumberFormat($second_number); @@ -100,7 +100,7 @@ final class Calculator * * @return string The result. */ - public static function ceil($number) + public static function ceil(string $number): string { if (self::compare($number, 0) == 1) { $result = bcadd($number, '1', 0); @@ -118,7 +118,7 @@ final class Calculator * * @return string The result. */ - public static function floor($number) + public static function floor(string $number): string { if (self::compare($number, 0) == 1) { $result = bcadd($number, '0', 0); @@ -145,7 +145,7 @@ final class Calculator * * @throws \InvalidArgumentException */ - public static function round($number, $precision = 0, $mode = PHP_ROUND_HALF_UP) + public static function round(string $number, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): string { self::assertNumberFormat($number); if (!is_numeric($precision) || $precision < 0) { @@ -163,7 +163,7 @@ final class Calculator // The rounding direction is based on the first decimal after $precision. $number_parts = explode('.', $number); $decimals = !empty($number_parts[1]) ? $number_parts[1] : '0'; - $relevant_decimal = isset($decimals[$precision]) ? $decimals[$precision] : 0; + $relevant_decimal = $decimals[$precision] ?? 0; if ($relevant_decimal < 5) { $number = $rounded_down; } elseif ($relevant_decimal == 5) { @@ -197,11 +197,10 @@ final class Calculator * @return int 0 if both numbers are equal, 1 if the first one is greater, * -1 otherwise. */ - public static function compare($first_number, $second_number, $scale = 6) + public static function compare(string $first_number, string $second_number, int $scale = 6): int { self::assertNumberFormat($first_number); self::assertNumberFormat($second_number); - return bccomp($first_number, $second_number, $scale); } @@ -216,7 +215,7 @@ final class Calculator * * @return string The trimmed number. */ - public static function trim($number) + public static function trim(string $number): string { if (strpos($number, '.') != false) { // The number is decimal, strip trailing zeroes. @@ -228,20 +227,18 @@ final class Calculator return $number; } - /** - * Assert that the given number is a numeric string value. - * - * @param string $number The number to check. - * - * @throws \InvalidArgumentException - */ - public static function assertNumberFormat($number) - { - if (is_float($number)) { - throw new \InvalidArgumentException(sprintf('The provided value "%s" must be a string, not a float.', $number)); - } - if (!is_numeric($number)) { - throw new \InvalidArgumentException(sprintf('The provided value "%s" is not a numeric value.', $number)); - } - } + /** + * Assert that the given number is a numeric string value. + * + * @param string $number The number to check. + * + * @throws \InvalidArgumentException + */ + public static function assertNumberFormat(string $number) + { + if (!is_numeric($number)) { + throw new \InvalidArgumentException(sprintf('The provided value "%s" is not a numeric value.', $number)); + } + } + } |