IE 8的toLocaleString()

Nav*_*een 7 javascript internet-explorer

下面是我的javascript

 var s = new Number(123456789);
 alert(s.toLocaleString("en-US"));
Run Code Online (Sandbox Code Playgroud)

这给出123,456,789了铬的结果.但IE 8显示123,456,789.00.是否有任何限制".00"在IE中添加的工作?

仅供参考:我已经检查过会在Chrome中出现问题并且搜索谷歌没有用.

Wea*_*ane 2

// 按照@RobG的评论,我进行了更改和简化,以查找可能用作小数点的任何字符(除非它是第一个字符)

var s = new Number(123456789);
var s1 = s.toLocaleString();
var p = new Number(Math.floor(s) + 0.1);    // similar value but decimal
var p1 = p.toLocaleString();
var index;
var point;
for (index=p1.length-1; index>0; index--) { // find decimal point in dummy
    point = p1.charAt(index);
    if (point < '0' || point > '9')
        break;
    }
if (index > 0) {
    index = s1.lastIndexOf(point);          // find last point in string
    if (index > 0)
        s1 = s1.slice(0, index);            // truncate decimal part
    }
alert(s1);
Run Code Online (Sandbox Code Playgroud)

  • [*Number.prototype.toLocaleString*](http://ecma-international.org/ecma-262/5.1/#sec-15.7.4.3) 不接受任何参数,因此依赖它并不是一个好的策略。 (4认同)