aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/commerceguys/intl/src/Calculator.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/commerceguys/intl/src/Calculator.php')
-rw-r--r--vendor/commerceguys/intl/src/Calculator.php51
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));
+ }
+ }
+
}