js处理价格数据,每三位加逗号,强制保留两位小数
需求说明:页面发送请求,需要显示商品的价格,后台从数据库中将价格取出,js处理价格数据,使用金额的标准格式将价格展示在前台。
如下图所示:
数据库存的数据如下:
前台得到的价格数据,如果小数为0的话会自动省略,这样就导致前台不能展示理想的价格数据。这里,笔者就按照财务对价格的标准写法在js中处理好价格数据然后再展示。
分析:目前主流的价格表示方法,第一,小数精确到分,即保留两位小数,如果价格数据是一个整数的话,就添加.00,即所有的价格都强制保留两位小数。第二,整数部分从右向左每隔三位添加一个逗号。这样显示的价格有模有样,一目了然,格式整齐。
定义一个有参的函数封装价格转换方法,传的参数即为需要转换的价格,需要转换价格时直接调用这个函数即可。
js函数代码如下:
//价格处理 function priceSwitch(x) {//强制保留两位小数 var f = parseFloat(x);if (isNaN(f)) return false;var f = Math.round(x * 100) / 100;var s = f.toString();var rs = s.indexOf('.');if (rs < 0) {rs = s.length;s += '.';}while (s.length < (rs + 1) + 2) {s += '0';}//每三位用一个逗号隔开 var leftNum=s.split(".")[0];var rightNum="."+s.split(".")[1];var result;//定义数组记录截取后的价格 var resultArray=new Array();if(leftNum.length>3){var i=true;while (i){resultArray.push(leftNum.slice(-3));leftNum=leftNum.slice(0,leftNum.length-3);if(leftNum.length<4){i=false;}}//由于从后向前截取,所以从最后一个开始遍历并存到一个新的数组,顺序调换 var sortArray=new Array();for(var i=resultArray.length-1;i>=0;i--){sortArray.push(resultArray[i]);}result=leftNum+","+sortArray.join(",")+rightNum;}else {result=s;}return result; }
示例:
该函数最关键之处就是字符串截取和新的字符串重新排列组合。
js处理价格数据,每三位加逗号,强制保留两位小数相关推荐
- input js number 整数_数字千分位处理,number.js,js保留两位,整数强制保留两位小数...
杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 官方文档:https://www.customd.com/articles/14/jquery-number-format-redux 1.千分位 $. ...
- js强制保留两位小数
计算过程中,发现浮点数如果没有小数位,就会自动舍掉小数点.现在想要做的是无论是整数还是多位小数,强制保留两位小数 1. 转为字符串,对字符串进行操作 //强制保留2位小数,如:2,会在2后面补上00. ...
- 保存两位小数点php_PHP 小数点保留两位
这篇文章主要介绍的内容是关于PHP 小数点保留两位,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 最近在做统计这一块内容,接触关于数字的数据比较多, 用到了三个函数来是 数字保留小数后 ...
- vue 保留三位小数_vue input框type=number 保留两位小数自定义组件
第一步:自定义组件MyNumberInput.vue export default { props: { point: { default: 0 }, max: Number, placeholder ...
- php数字两位小数_PHP数字价格格式化,保留两位小数
jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) numberbo ...
- js string转两位小数_js保留两位小数总结
一 Math.round(),Math.ceil(),Math.floor()的区别 Math.round():根据"round"的字面意思"附近.周围",可以 ...
- 对金钱金额的处理--每三位间隔‘,‘,末尾保留两位小数
对金钱金额的处理–每三位间隔',',末尾保留两位小数 由于项目的原因,最近遇到在下单时需要对金额进行特殊处理,我的需求是:当折扣不足0.01元时,不计入折扣.也就是这部分由客户自行承担. 朋友给我分享 ...
- js截取小数点前的数字_js保留两位小数、字符串截取
在js中实现对数字保留两位小数.自定义函数: function twoDecimal(number){ if(isNaN(number)){ console.log(number + "不是 ...
- jq设置保留两位小数_javascript实现保留两位小数的多种方法
第一种方法:javascript实现保留两位小数一位自动补零代码实例:第一种方法介绍一下如何实现对数字保留两位小数效果,如果数字的原本小数位数不到两位,那么缺少的就自动补零,这个也是为了统一的效果,先 ...
最新文章
- Mina源码阅读笔记(一)-整体解读
- 虚拟机Ping不通主机解决
- C/C++:Windows cmd 指令
- SVM熟练到精通1:初识SVM
- poll函数_I/O复用 - 三组I/O复用函数的比较
- Java NIO (十四)NIO 和 IO 的区别和适用场景分析
- 正则表达式各种常规应用
- HDU5763 another meaning -(KMP+DP)
- oracle11g怎样进行闪回,模拟Oracle11g下用Flashback Data Archive进行恢复的若干场景
- php服务端setcookie()原理
- Nokia PC 套件版本及在不同Windows 上的安装问题
- 笔记本关闭触摸板——解决无法关闭触摸板问题
- 盐(salt value)密码学
- 2020-12.24 用SURF实现简易的两张图像拼接
- 互联网产品经理的学习计划
- java 孕周计算器_周期表孕期计算器
- unable to load Private Key 6572:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\
- 曾经被微软视为毒瘤的“开源”,现在却成了“宠儿”
- MATLAB-随机森林实现数据回归分析预测
- C语言探索之旅 | 第一部分第三课:你的第一个程序
热门文章
- 刚性防水套管止水环 通风穿墙套管
- 世界上最遥远的距离,不是生与死,而是我心与你心之间的距离。
- WPF C# VS2013 TextBox控件 限制只能输入数字
- c语言中recvfrom函数,C语言sendto()函数-经socket传送数据以及recvfrom函数《转》
- c语言复合语句,C语言中,可将一系列语句置于一对( )之间从而构成复合语句。...
- 微信小程序——二维码推广海报
- 已经发车的票还能取出来吗_我买了张高铁票(已付过钱),但是车已经开了,我没上车,票也没取,还能在取出票吗?...
- 现代数字通信第八章——阵列信号处理与空域滤波
- commons-fileupload实现文件上传,带你领略不一样的世界
- 《C++项目开发实战入门》攻坚战