我有一个目前为1,657,108,700且正在增长的数字。但是我希望它显示为 1,657,108k
javascript或html是否具有构建函数来执行此操作?
通过javascript将值设置为html中的span字段。
[编辑]
从评论中我得到了我的方法:
var start = '1,657,108,700';
start = (start / 1000).toFixed(0);
var finish = '';
while (start.length > 3)
{
finish = ','.concat(start.substring(start.length - 3, 3), finish);
start = start.substring(0, start.length - 3);
};
finish = start + finish + "k";
return finish;
然而,这会返回1,65,7k而不是1,657,108k ..任何人都知道为什么?
答案 0 :(得分:1)
var formattedNumber = Math.round(yourNumber / 1000).toLocaleString() + "k";
根据需要将上述内容变为功能。我不知道有一个单独的功能,或者一种方式来迎合非英语版本的“k”(假设有一些),但至少toLocaleString()
应该照顾逗号与成千上万的问题。
更新:我在没有测试的情况下发布了上述内容;当我试用它时,我发现toLocaleString()将1234格式化为1,234.00。我曾想过通过使用正则表达式替换来删除尾随零来修复它除了当然我不能确定toLocaleString()将用于小数点的字符,所以这将无法工作。我猜你可以在“控制”号(例如1.1)上编写一些使用toLocaleString()的代码,以便在运行时看到它用于小数的字符。
更新2更新问题,手动插入逗号,我这样做:
var unformattedNumber = 123456;
var a = unformattedNumber.toString().split("");
for (var i=a.length-3; i >0; i-=3)
a.splice(i,0,",");
var formattedNumber = a.join("") + "k";