#javascript #ecmascript-6 #number-formatting #ecma
#javascript #ecmascript-6 #форматирование чисел #ecma
Вопрос:
Я заметил, что форматирование нескольких стран (Польша, Россия, Франция и другие) ведет себя странно. Формат начинает применяться к значениям, содержащим более 4 цифр. Вы можете увидеть это в коде ниже.
К сожалению, я не нашел для этого никаких международных стандартов, и я видел, что на других языках программирования формат для этих стран начинается с 4-й цифры.
Мне интересно, соответствует ли Intl.NumberFormat правильным стандартам форматирования.
const simpleFormat = new Intl.NumberFormat('pl-PL', {
style: 'decimal'});
let short = simpleFormat.format(1234);
let long = simpleFormat.format(12345);
console.log(short);
console.log(long);
Ожидаемый результат:
1 234
12 345
Комментарии:
1. Согласно ECMA 402 , «Локализованные десятичные и группирующие разделители» зависят от реализации. Я вижу то, что вы видите в Firefox 85.0, Arch Linux:
1234
и12 345
.2. В качестве точки данных эстонский язык использует аналогичную логику, где вы не вставляете пробел для 4-значных чисел (
1234
), но вы вставляете пробел для 5-значных чисел (12 345
). Хотя я не проследил официальную спецификацию здесь, я бы не удивился, если бы польский язык сделал что-то подобное.