JS数字每三位加逗号的最简单方法
<script> function thousands(num){
var str = num.toString();
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
return str.replace(reg,"$1,");
} alert(thousands(1234567.1234567));
alert(thousands(7654321)); </script>
方法一【原生】:
<script>
function thousands(num){
return num.toLocaleString();
}
alert(thousands(1234567.1234567));
alert(thousands(7654321));
</script>
这个方法最为简单,使用JS原生实现。toLocaleString在将数字转换为字符串的同时,会使用三位分节法进行显示。如果是浮点数,只保留小数点后三位数,并进行了四舍五入。如果对结果要求不高,这个算是最简单的实现。
方法二【正则表达式】:
<script>
function thousands(num){
var str = num.toString();
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
return str.replace(reg,"$1,");
}
alert(thousands(1234567.1234567));
alert(thousands(7654321));
</script>
运行一下试试
利用正则表达式,也是代码量较少的一种方法。如果仅考虑整数,或指定位数的小数,可以更加简洁:
保留两位小数:
num.toFixed(2).toString().replace(/(\d)(?=(\d{3})+\.)/g,"$1,");
保留整数:
num.toFixed(0).toString().replace(/(\d)(?=(?:\d{3})+$)/g,"$1,");
方法三【字符串打散】:
<script>
function thousands(num){
var splits=[],res=[];
var splits = num.toString().split(".");
splits[0].split("").reverse().map(function(item,i){
if(i%3 == 0 && i!=0){ res.push(","); }
res.push(item);
});
return res.reverse().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 代替。
例如,保留两位小数:
<script>
function thousands(num){
num = num.toFixed(2);//保留两位小数
var str = num.toString();
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
return str.replace(reg,"$1,");
}
alert(thousands(1234567.1234567));
</script>
JS数字每三位加逗号的最简单方法的更多相关文章
- php实现数字格式化,数字每三位加逗号的功能函数
原地址:http://www.jb51.net/article/73781.htm php实现数字格式化,数字每三位加逗号的功能函数,具体代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 ...
- js 格式化数字(每三位加逗号)
// 方法一 unction toThousands(num) { var result = [ ], counter = 0; num = (num || 0).toString().split(' ...
- js j将数字每三位用逗号隔开的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js金额数字格式化实现代码(三位加逗号处理保留两位置小数)
工作中很常用的东西: 例1,使数字1111111变成11,111,111.00,保留两位小数. <html> <head> <script type="text ...
- JS格式化数字(每三位加逗号)
function toThousands(num) { var num = (num || 0).toString(), result = ''; //判断是否带小数点 if (num.split(' ...
- js 现给数字加三位一逗号间隔的种方法
方法一:(ie下有问题) <script type= "text/javascript"> var num_s = "1232134456.546 " ...
- js数字每3位加一个逗号
if(typeof val ==="number"){ var str = val.toString(); ? /(\d)(?=(\d{})+\.)/g : /(\d)(?=(?: ...
- js里用 toLocaleString 实现给数字加三位一逗号间隔(有无小数点都适用)
<input type="hidden" id="totalLandArea" value="<%-info.totalLandArea% ...
- iOS-格式化金额,三位一逗号
代码地址如下:http://www.demodashi.com/demo/11244.html 项目版本更新迭代中, 新增需求: 所有金额必须用标准会计表示方式(¥94,862.57). 而之前金额展 ...
随机推荐
- js中的逻辑运算符详解(||、&&、!)
视频地址:https://www.bilibili.com/video/BV1Y7411K7zz?p=1 一直以来都没弄清楚js中的逻辑运算符是怎么回事 , 一直都以为他们的用法和java一样 , 今 ...
- shell脚本的使用该熟练起来了,你说呢?(篇二)
继续前一篇的文章: shell脚本的使用该熟练起来了,你说呢?(篇一) 作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:羽林君 shell传递参数 shell传递参数 我们可以在执行 Shell ...
- hdu 3974 Assign the task(dfs序上线段树)
Problem Description There is a company that has N employees(numbered from 1 to N),every employee in ...
- hdu 01 Matrix
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...
- Shpfile文件的字段类型说明
Shpfile文件的字段类型设置如下表所示: 字段类型 字符 字段长度 长整型 N 9 短整型 N 4 浮点型 F 13 双精度 F 19 文本 C 50 特别需要注意的是字段长度,在导出SHP的时候 ...
- 牛客网多校第4场 J Hash Function 【思维+并查集建边】
题目链接:戳这里 学习博客:戳这里 题意: 有n个空位,给一个数x,如果x%n位数空的,就把x放上去,如果不是空的,就看(x+1)%n是不是空的. 现在给一个已经放过数的状态,求放数字的顺序.(要求字 ...
- Leetcode(106)-从中序与后序遍历序列构造二叉树
根据一棵树的中序遍历与后序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7 ...
- Leetcode(26)-删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 我们利用 ...
- Leetcode(1)-两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...
- kmp--考研写法
首先是模式串匹配: #include<iostream> #include<stdlib.h> using namespace std; #define maxn 100000 ...