Правильно ли форматирование Intl.NumberFormat для Польши?

#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 ). Хотя я не проследил официальную спецификацию здесь, я бы не удивился, если бы польский язык сделал что-то подобное.