我正在使用该Number.prototype.toLocaleString()函数为整数添加逗号.有关它的文档可以在这里找到.
我写的如下:
Number(data).ToLocaleString('en');
Run Code Online (Sandbox Code Playgroud)
在Firefox/Chrome中,数字显示为123,456,789.但是,在IE中它显示为123,456,789.00.
1.为什么IE添加小数点值?
2.如何删除小数点值?
而不是创建/使用自定义函数,我真的只是想知道是否有一个选项可以添加到ToLocaleString()之类的en, nodecimal.如果该选项不可用,我将考虑自定义功能.
And*_*y E 11
你测试过哪个版本的IE?在IE 10及更低版本中,toLocaleString基于ECMAScript规范,该规范声明该函数应该是"依赖于实现的".在IE 11中,它基于ECMA国际化API,应与Firefox 26保持一致.
要删除IE 10及更低版本(以及可能的其他旧浏览器)中的十进制值,您将不得不求助于字符串操作:
Number(data).toLocaleString('en').slice(0, -3);
Run Code Online (Sandbox Code Playgroud)
还有一个可用于此API 的polyfill,适用于IE 10及更低版本.目前包含它有点棘手,因为浏览器/缩小版本不包含实际数据(因为它会很大).数据以JSON或JSONP格式单独提供,以便您可以为当前浏览站点的用户下载正确的数据.
a15*_*15n 10
1)参考Andy E的(1)答案.
2)Andy E的解决方案适用于IE 10及更低版本,但似乎在现代浏览器上导致错误的输出(在控制台中尝试使用任何数字).这是一个更安全的字符串操作:
Number(data).toLocaleString().split('.')[0];
Run Code Online (Sandbox Code Playgroud)
*安迪我会在评论中添加这个作为你的回答,但我没有足够的声誉.
怎么样:
const sum = 1000;
const formatted = sum.toLocaleString("en", {
minimumFractionDigits: 0,
maximumFractionDigits: 0,
});
console.log(formatted);
Run Code Online (Sandbox Code Playgroud)
对于:
// 1,000
Run Code Online (Sandbox Code Playgroud)
或者,如果您有钱:
const sum = 1000;
const formatted = sum.toLocaleString("en", {
style: "currency",
currency: "USD",
minimumFractionDigits: 0,
maximumFractionDigits: 0,
});
console.log(formatted);
Run Code Online (Sandbox Code Playgroud)
对于:
// $1,000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17633 次 |
| 最近记录: |