2016-04-04 4 views
4

Я пытался преобразовать число, скажем, 123456.789 в India Locale Format wiz 1,23,456.789, поскольку Индия использует тысячи/lakh/crore separators.Преобразование числа в Индию Язык Формат

Я был в состоянии сделать это с помощью 10-20 строк кода, а затем я пришел к этой статье MDN.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Using_locales

Вы видите линию 11, они объявили механизм там, чтобы преобразовать его

// India uses thousands/lakh/crore separators 
console.log(number.toLocaleString('en-IN')); 
// → 1,23,456.789 

Но он не работает (проверено в Chrome v49.0.2623 и Safari)

Output in safari: 
123456.789 

Output in chrome: 
123,456.789 

Но он работал в firefox

Output in Firefox: 
1,23,456.789 

Но когда я прочитал таблицу совместимости браузера было указано, что она поддерживается в хромированной v24 +

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Browser_compatibility

Является ли это ошибка или я делаю что-то не так?

var number = 123456.789 
 
console.log(number.toLocaleString('en-IN'));

+0

Поддержка метода - это не то же самое, что поддержка каждого конкретного языка и связанных с ним правил форматирования. Вполне возможно, что это «ошибка» в Chrome и Safari, где у них нет никаких конкретных правил форматирования для чисел в Индии, поэтому он возвращается к умолчанию. –

+2

Я думаю, что это может быть только вход '' en-IN''. Ввод «hi'' (хинди) в Chrome возвращает« 1,23,456.789', как и ожидалось. –

ответ

4

Это просто означает, что код en-IN язык не поддерживается Chrome (или Safari). Возможно, вам удастся использовать другой язык, который использует тот же формат. Пример этого может служить кодом Hindi локал (hi), который, кажется, вернуть этот формат в Chrome, Firefox и Internet Explorer 11:

console.log((123456.789).toLocaleString('hi')); 
-> 1,23,456.789 

Для чего это стоит, таблицы поддержки MDN только списки Базовой поддержки. Он определяет, какие браузеры реализуют функциональность, но это не идет ни в какое сравнение с каждым возможным вариантом использования.