NumberUtil
in package
A class of utilities for dealing with numbers.
Table of Contents
- array_sum() : float
- Get the sum of an array of values using the built-in array_sum function, but sanitize the array values first to ensure they are all floats.
- round() : float
- Round a number using the built-in `round` function, but unless the value to round is numeric (a number or a string that can be parsed as a number), apply 'floatval' first to it (so it will convert it to 0 in most cases).
Methods
array_sum()
Get the sum of an array of values using the built-in array_sum function, but sanitize the array values first to ensure they are all floats.
public
static array_sum(array<string|int, mixed> $arr) : float
This is needed because in PHP 8.3 non-numeric values that cannot be cast as an int or a float will cause an E_WARNING to be emitted. Prior to PHP 8.3 these values were just ignored.
Note that, unlike the built-in array_sum, this one will always return a float, never an int.
Parameters
- $arr : array<string|int, mixed>
-
The array of values to sum.
Return values
float —round()
Round a number using the built-in `round` function, but unless the value to round is numeric (a number or a string that can be parsed as a number), apply 'floatval' first to it (so it will convert it to 0 in most cases).
public
static round(mixed $val, int $precision[, int $mode = PHP_ROUND_HALF_UP ]) : float
This is needed because in PHP 7 applying round
to a non-numeric value returns 0,
but in PHP 8 it throws an error. Specifically, in WooCommerce we have a few places where
round('') is often executed.
Parameters
- $val : mixed
-
The value to round.
- $precision : int
-
The optional number of decimal digits to round to.
- $mode : int = PHP_ROUND_HALF_UP
-
A constant to specify the mode in which rounding occurs.