The number_format_i18n WordPress PHP filter formats a number based on the current locale.
Usage
add_filter('number_format_i18n', 'custom_number_format_i18n', 10, 3);
function custom_number_format_i18n($formatted, $number, $decimals) {
// your custom code here
return $formatted;
}
Parameters
- $formatted (string) – The converted number in string format.
- $number (float) – The number to convert based on the locale.
- $decimals (int) – Precision of the number of decimal places.
More information
See WordPress Developer Resources: number_format_i18n
Examples
Custom decimal precision
Change the decimal precision to 4 decimal places.
add_filter('number_format_i18n', 'custom_decimal_precision', 10, 3);
function custom_decimal_precision($formatted, $number, $decimals) {
$formatted = number_format_i18n($number, 4);
return $formatted;
}
Always round up
Always round up the number regardless of the decimal value.
add_filter('number_format_i18n', 'always_round_up', 10, 3);
function always_round_up($formatted, $number, $decimals) {
$rounded_number = ceil($number);
$formatted = number_format_i18n($rounded_number, $decimals);
return $formatted;
}
Format number as currency
Format the number as currency with a specific currency symbol.
add_filter('number_format_i18n', 'format_number_as_currency', 10, 3);
function format_number_as_currency($formatted, $number, $decimals) {
$currency_symbol = '$';
$formatted = $currency_symbol . number_format_i18n($number, $decimals);
return $formatted;
}
Remove decimal part
Remove the decimal part of the number, showing only the integer part.
add_filter('number_format_i18n', 'remove_decimal_part', 10, 3);
function remove_decimal_part($formatted, $number, $decimals) {
$formatted = number_format_i18n($number, 0);
return $formatted;
}
Add a custom suffix
Add a custom suffix to the formatted number.
add_filter('number_format_i18n', 'add_custom_suffix', 10, 3);
function add_custom_suffix($formatted, $number, $decimals) {
$suffix = ' points';
$formatted = number_format_i18n($number, $decimals) . $suffix;
return $formatted;
}