number_format_i18n()WP 2.3.0

Convert float number to format based on the locale.

1 time — 0.000034 sec (very fast) | 50000 times — 0.06 sec (speed of light) | PHP 7.1.2, WP 4.7.4
Hooks from the function

Return

String. Converted number in string format.

Usage

number_format_i18n( $number, $decimals );
$number(float) (required)
The number to convert based on locale.
$decimals(int)
Precision of the number of decimal places.

Examples

1

#1 Output demonstration

$number = number_format_i18n( 1111 );
// Russian: '1 111'
// English: '1,111'

$number = number_format_i18n( 2222, 2 );
// Russian: '2 222,00
// English: '2,222.00'

$number = number_format_i18n( 5555.5555555, 2 );
// Russian: '5 555,56
// English: '5,555.56'

// Handling empty values:

number_format_i18n( 0 ); 
// "0"

number_format_i18n( null );
// "0"

number_format_i18n( '' );
// Warning: number_format() expects parameter 1 to be float, string given

number_format_i18n( [] );
// Warning: number_format() expects parameter 1 to be float, array given

Notes

  • Global. WP_Locale. $wp_locale WordPress date and time locale object.

Changelog

Since 2.3.0 Introduced.

number_format_i18n() code WP 6.4.3

function number_format_i18n( $number, $decimals = 0 ) {
	global $wp_locale;

	if ( isset( $wp_locale ) ) {
		$formatted = number_format( $number, absint( $decimals ), $wp_locale->number_format['decimal_point'], $wp_locale->number_format['thousands_sep'] );
	} else {
		$formatted = number_format( $number, absint( $decimals ) );
	}

	/**
	 * Filters the number formatted based on the locale.
	 *
	 * @since 2.8.0
	 * @since 4.9.0 The `$number` and `$decimals` parameters were added.
	 *
	 * @param string $formatted Converted number in string format.
	 * @param float  $number    The number to convert based on locale.
	 * @param int    $decimals  Precision of the number of decimal places.
	 */
	return apply_filters( 'number_format_i18n', $formatted, $number, $decimals );
}