NumberUtil::round()public staticWC 1.0

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).

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.

Method of the class: NumberUtil{}

No Hooks.


float. The value rounded to the given precision as a float, or the supplied default value.


$result = NumberUtil::round( $val, $precision, $mode ) : float;
$val(mixed) (required)
The value to round.
The optional number of decimal digits to round to.
A constant to specify the mode in which rounding occurs.

NumberUtil::round() code WC 8.9.0

public static function round( $val, int $precision = 0, int $mode = PHP_ROUND_HALF_UP ) : float {
	if ( ! is_numeric( $val ) ) {
		$val = floatval( $val );
	return round( $val, $precision, $mode );