2016-04-04 12 views
4

Ich habe versucht, eine Zahl zu konvertieren sagen 123456.789 nach Indien Locale Format wiz 1,23,456.789 wie Indien Tausende/Lakh/Crore Separatoren verwendet.Konvertieren von Nummer in Indien Locale Format

Ich war erfolgreich in der Lage, dies mit einigen 10-20 Zeilen Code zu tun, und dann kam ich zu diesem Artikel von MDN.

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

Sie sehen die Linie 11, sie einen Mechanismus dort erklärt haben, es zu konvertieren

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

Aber es funktioniert nicht (getestet in Chrome v49.0.2623 und Safari)

Output in safari: 
123456.789 

Output in chrome: 
123,456.789 

Aber es funktionierte in Firefox

Output in Firefox: 
1,23,456.789 

Aber wenn ich die Browser-Kompatibilität Tabelle gelesen wurde festgestellt, dass es + in Chrom v24 unterstützt wird

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

Ist es ein Fehler, oder bin ich etwas falsch gemacht?

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

+0

Die Unterstützung der Methode ist nicht das Gleiche wie die Unterstützung jedes einzelnen Gebietsschemas und der zugehörigen Formatierungsregeln. Es ist durchaus möglich, dass es sich um einen "Bug" in Chrome und Safari handelt, bei dem es keine indienspezifischen Formatierungsregeln für Zahlen gibt. Daher wird auf den Standardwert zurückgegriffen. –

+2

Ich denke, es kann nur der Eingang "en-IN" sein. Eine Eingabe von "hi" (Hindi) in Chrome gibt "1,23,456.789" wie erwartet zurück. –

Antwort

4

Dies bedeutet einfach, dass der en-IN locale-Code wird von Chrome nicht unterstützt (oder Safari). Möglicherweise haben Sie ein besseres Glück, wenn Sie ein anderes Gebietsschema verwenden, das dasselbe Format verwendet. Ein Beispiel hierfür ist das Hindi locale Code (hi), die dieses Format in Chrome, Firefox und Internet Explorer 11 zurückzukehren scheint:

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

Für das, was es wert ist, MDN Unterstützung Tabelle listet nur Basic Support. Es bestimmt, welche Browser die Funktionalität implementieren, aber es geht nicht so weit, jeden möglichen Anwendungsfall zu testen.