JS数字每三位加逗号的最简单⽅法
<script>
function thousands(num){
var str = String();
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
place(reg,"$1,");
}
alert(thousands(1234567.1234567));
alert(thousands(7654321));
</script>
JavaScript
<script>
function thousands(num){
LocaleString();
}
alert(thousands(1234567.1234567));
alert(thousands(7654321));
</script>
这个⽅法最为简单,使⽤JS原⽣实现。toLocaleString在将数字转换为字符串的同时,会使⽤三位分节法进⾏显⽰。如果是浮点数,只保留⼩数点后三位数,并进⾏了四舍五⼊。如果对结果要求不⾼,这个算是最简单的实现。
JavaScript
<script>
function thousands(num){
var str = String();
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
place(reg,"$1,");
}
alert(thousands(1234567.1234567));
alert(thousands(7654321));
</script>
js正则表达式数字和小数点运⾏⼀下试试
利⽤正则表达式,也是代码量较少的⼀种⽅法。如果仅考虑整数,或指定位数的⼩数,可以更加简洁:
保留两位⼩数:
JavaScript
保留整数:
JavaScript
JavaScript
<script>
function thousands(num){
var splits=[],res=[];
var splits = String().split(".");
splits[0].split("").reverse().map(function(item,i){
if(i%3 == 0 && i!=0){ res.push(","); }
res.push(item);
});
verse().join("")+(splits.length>1 ? "."+splits[1] : "");
}
alert(thousands(1234567.1234567));
alert(thousands(7654321));
</script>
把数字分成整数和⼩数两部分,然后把整数部分差成单字符数组,反向排列后每3位插⼊⼀个逗号(因为逗号是从后向前加)。然后再⼀次反向排列并合成字符串,加上⼩数部分就完成了。
如果有保留⼩数位数的要求,以上⽅法都可以对参数 num 使⽤ toFixed(n) ⽅法,toFixed() ⽅法可把 Number 四舍五⼊为指定⼩数位数的数字。参数 n 规定⼩数的位数,是0 ~ 20 之间的值,包括 0 和 20,有些实现可以⽀持更⼤的数值范围。如果省略了该参数,将⽤ 0 代替。
例如,保留两位⼩数:
JavaScript
<script>
function thousands(num){
num = Fixed(2);//保留两位⼩数
var str = String();
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
place(reg,"$1,");
}
alert(thousands(1234567.1234567));
</script>