原生js实现数字三位逗号,分隔。js实现支持逗号分割的货币格式表示法总汇

时间: 2017-12-05阅读: 4212标签: js知识

原生js实现数字三位逗号,分隔。js实现支持货币格式表示法


方法一:

function setMoney(num){//取整,三行逗号隔开
	return parseFloat(num).toLocaleString();
	
}
var m=setMoney(123456.7889);
console.log(m);//输出123,456.789

说明:toLocaleString在将数字转换为字符串的同时,会使用三位分节法进行显示。如果是浮点数,只只保留了小数点后三位数,并进行了四舍五入。

注意:在IE下,浮动数会默认取消,输出结果为123,456


方法二:

function setnum(num){//取整,三行逗号隔开
	/*//获取小数位
    var right=String(num).split('.')[1];
    right=(right==undefined)?'':right;
    */
   num=Math.floor(num);//向下取整,
   num=num.toString(); 
   var len=num.length,
   		r=len%3;
   if(len<=3){
   	return num;
   }
   num=r>0?num.slice(0,r)+","+num.slice(r,len).match(/\d{3}/g).join(","):num.slice(r,len).match(/\d{3}/g).join(","); 
   return num; 
};
var m=setnum(123456.789);
console.log(m);//输出123,456

说明:slice 方法用于截取字符串中的一部分并返回该部分字符串。match方式代表正则表达式的匹配,最后通过join将元素放入一个字符串,用逗号隔开。


方法三

function setnum(num){//保留2位小数,如果没小数位自动补全.00
    if(num && num!=null){  
        num = String(num);  
        var left=num.split('.')[0],right=num.split('.')[1];  
        right = right ? (right.length>=2 ? '.'+right.substr(0,2) : '.'+right+'0') : '.00';  
        var temp = left.split('').reverse().join('').match(/(\d{1,3})/g);  
        return (Number(num)<0?"-":"") + temp.join(',').split('').reverse().join('')+right;  
    }else if(num===0){   //注意===在这里的使用,如果传入的num为0,if中会将其判定为boolean类型,故而要另外做===判断  
        return '0.00';  
    }else{  
        return "";  
    }  
};  
var m=setnum(123456.789);
console.log(m);//输出123,456.78
m=setnum(123456);
console.log(m);//输出123,456.00

如果要将123,456.78转换为123456.78呢?如下:

function undonum(num){  
    if(num && num!=null){  
        num = String(num);  
        var group = num.split('.');  
        var left = group[0].split(',').join('');  
        return Number(left+"."+group[1]);  
    }else{  
        return "";  
    }  
}; 
var m=undonum('123,456.789');
console.log(m);//输出123456.789


吐血推荐

1.站长广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入...

2.休闲娱乐: 直播/交友    优惠券领取   网页游戏   H5游戏

链接: http://www.fly63.com/article/detial/221

Js输出方式有哪些?

在编写JavaScript代码的时候, 一定要记住每一句代码后面都需要添加一个分号, 并且这个分号必须是英文的分号,我们会发现有时候不写分号程序也能够运行, 这里并不是因为不需要分号, 而是浏览器自动帮助我们添加了分号

7个常见的 JavaScript 测验及解答

我相信学习新事物并评估我们所知的东西对自己的进步非常有用,可以避免了我们觉得自己的知识过时的情况。在本文中,我将介绍一些常见的 JavaScript 知识。请享用!

Js中constructor指向问题

首先用一个例子指出来constructor存在形式。由上面的代码我们总结出结论1:上面的代码在控制台可以看出constructor是指向构造器Fruit的引用。这个地方就有点奇怪了。这个constructor到底指向的是那个实例的构造器?

JS中的词法作用域(静态作用域)和动态作用域

首先说明一下,JavaScript没有用动态作用域概念,但 this 机制却和动态作用域类似!JavaScript是通过作用域链的方式进行变量查找的,而JS作用域链是词法作用域,也就做静态作用域!词法作用域:在函数声明(定义)时确定的

JavaScript 进阶问题列表

我在我的 Instagram 上每天都会发布 JavaScript 的选择题,并且同时也会在这个仓库中发布。从基础到进阶,测试你有多了解 JavaScript,刷新你的知识,或者帮助你的 coding 面试!

JS 中的垃圾回收

对于开发者来说,JavaScript 的内存管理是自动的、无形的。我们创建的原始值、对象、函数……这一切都会占用内存。当某个东西我们不再需要时会发生什么?JavaScript 引擎如何发现它、清理它?

TS与JS中的Getters和Setter究竟有什么用?

在本文中,我们讨论了getter 和 setter 在现代 Web 开发中的实用性。它们有用吗?什么时候使用它们是有意义的?尽管我不同意 getter 和 setter 完全是一个反模式。但它们在几种情况下能带来更多的实用性。

JS中for循环的常见题型

for循环示例;让用户输入行数,使用for循环嵌套打出倒着的星星出来,行数等于用户输入的数字 ;有1,2,3,4这么4个数,能组成多少个互不相同且不含有重复数字的三位数?都是多少?

javascript:void(0)的含义

首先,void关键字是javascript当中非常重要的关键字,该操作符指定要计算或运行一个表达式,但是不返回值。语法格式:void func()、void(func())

前端基础之BOM和DOM

JavaScript分为 : ECMAScript,DOM,BOM。BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。DOM (Document Object Model)是指文档对象模型

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全