Javascript将数字格式化为C#

Javascript将数字格式化为C#,javascript,html,format,Javascript,Html,Format,我有一个数字,目前是1657108700和增长。然而,我希望它显示为 1657108K javascript或html是否有内置函数来执行此操作 通过javascript将该值设置为html中的范围字段 [编辑] 从评论中,我得到了我的方法: var start = '1,657,108,700'; start = (start / 1000).toFixed(0); var finish

我有一个数字,目前是1657108700和增长。然而,我希望它显示为 1657108K

javascript或html是否有内置函数来执行此操作

通过javascript将该值设置为html中的范围字段

[编辑]

从评论中,我得到了我的方法:

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,而不是1657108K。。有人知道为什么吗

var formattedNumber = Math.round(yourNumber / 1000).toLocaleString() + "k";
根据需要将上述内容转换为函数或非函数。我不知道有哪一个函数可以做到这一点,也不知道有哪一种方法可以满足非英语版本的“k”(假设有一些),但至少
toLocaleString()
应该为数千个问题处理逗号与句号之间的关系

更新:我没有测试就发布了上面的内容;当我试用它时,我发现toLocalString()将1234格式化为1234.00。我曾想过使用正则表达式替换来删除尾随的零来修复它,当然我不能确定小数点将使用哪个字符toLocaleString(),所以这不起作用。我想您可以编写一些代码,在“control”数字(例如1.1)上使用toLocalString()来查看它在运行时使用的十进制字符

更新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";

可能的重复项:,@Andrei Sfat:这绝对不是其中任何一个的重复项。第一个是C#,我的问题是javascript。第二个方法为我返回NaNk。我知道没有函数,但实现起来很简单。只需除以1000,进行Math.floor(或round)运算,然后在其上添加一个“k”。这个链接怎么样@安德烈·斯法特:谢谢,但这也没用。