parseInt( '1000' ).toLocaleString() Result in Safari: 1.000 Result in Firefox und Chrome: 1.111 parseFloat( '1000.33' ).toLocaleString() Result in Safari: 1000.33 Result in FF und Chrome: 1.000,33
Which locale were you testing under, and how did you set it? From these results, it looks like entirely different locales were used by different browsers. > Result in Safari: 1.000 > Result in Firefox und Chrome: 1.111 It seems unlikely that values are actually different like this.
Sorry - there were some typos. It's like this: As I'm in Austria the browsers should use the de_AT locale. parseInt( '1000' ).toLocaleString() Result in Safari: 1000 (the thousands separator is missing) Result in Firefox und Chrome: 1.000 (correct with thousands separator) parseFloat( '1000.33' ).toLocaleString() Result in Safari: 1000.33 (the thousands separator is missing) Result in FF und Chrome: 1.000,33 (correct with thousands separator and comma as decimal mark)
Result in Safari: 1000.33 (the thousands separator is missing AND the wrong decimal mark is being used. It's a point instead of a comma.)
I did not set the locale.
I'm using OS X with these settings: language: German region: Austria Zahlentrennzeichen: Gruppierung: . Dezimal: , Safari and Webkit seem to ignore these settings.
Ugh, I somehow didn't realize that Number.toLocaleString does not take locale into consideration at all in WebKit :( *** This bug has been marked as a duplicate of bug 77018 ***