我一直在绞尽脑汁想弄明白为什么在使用Number.prototype.toLocaleString时,它会将我的数字乘以100。
var num = 5;
alert(num + ' vs ' + num.toLocaleString('en-GB', { style: 'percent' }));
阅读所有的参考指南,我没有看到任何建议,它应该是。
我是不是完全搞错了重点?
发布于 2017-09-06 14:04:38
来自等级库:
如果numberFormat.[style]的值为“%”,则设x为100×x。
它期望一个在0,1的范围内的数字,然后形成在0%到100%之间的某个数字。
发布于 2017-09-06 14:01:11
造成这种情况的原因是percent而不是toLocaleString,原因是从0到1 as 0%到100%的数字来衡量百分比,所以如果您想要5%,请使用:
var num = .05;
alert(num + ' vs ' + num.toLocaleString('en-GB', { style: 'percent' }));
发布于 2017-09-06 14:05:57
与许多其他系统一样,toLocaleString的百分比风格将1解释为100 %。
这是表示百分比的一种常见方法(例如概率论,其中100 %的概率是1)。
https://stackoverflow.com/questions/46077167
复制相似问题