JavaScript
Schreibe einen Kommentar

JavaScript toLocaleString Format fix um gleiche Ergebnisse in jedem Browser zu bekommen

Die toLocaleString() JavaScript Funktion soll eigentlich diverse Zahlen, Daten und Variablenformate in die jeweilige Anpassung der Landes für den Client übernehmen. Dies geschieht jedoch im Browser, so dass der Browser die Hoheit darüber übernimmt, wie der formatierte String später aussehe.

Negativ Beispiel

An einem Beispiel soll deutlich werden wie unterschiedlich toLocaleString() in den jeweiligen Browsern ausgibt. Dazu soll eine float Zahl in eine deutsche Währungsdarstellung umformatiert werden.

var sum=2282.00;
var formated_sum = Number(sum).toLocaleString("de-DE", {style: "currency", currency: "EUR"});

So sieht dann das Ergebnis in den jeweiligen Browsern aus:

Browser Darstellung
Firefox: 2.282,00 €
Chrome: 2.282 €
IE 8+: 2.282,00 €
Safari: 2282 €

Das ist natürlich sehr unschön, besonders wenn die übrige Website sich an einer festen Konvention der Darstellung von Preisen hält.

Lösung für die unterschiedliche toLocaleString Formatierung

Die Lösung für die unterschiedliche toLocaleString Formatierung liegt leider in einem externen Funktionsmodul. Ich habe für mich in accounting.js die perfekte Lösung gefunden.

var sum = 2282.00;
$.getScript('/js/accounting.min.js', function(sum){
  var endpreis_formated = accounting.formatMoney(sum, "", 2, ".", ",") + ' EUR';
});

* jQuery vorausgesetzt

Browser Darstellung
Firefox: 2.282,00 EUR
Chrome: 2.282,00 EUR
IE 8+: 2.282,00 EUR
Safari: 2.282,00 EUR
Kategorie: JavaScript

von

Ich betreibe T-Shaped Marketing in zwei Online-Shops. Dazu gehört auch ständig neue technische Raffinessen in die Shops einzubauen. Ich bin ein leidenschaftlicher Philosoph, Tech and IT Blogger auf mizine.de. Mein #COFFEE is always #000000

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.