需求说明:页面发送请求,需要显示商品的价格,后台从数据库中将价格取出,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处理价格数据,每三位加逗号,强制保留两位小数相关推荐

  1. input js number 整数_数字千分位处理,number.js,js保留两位,整数强制保留两位小数...

    杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 官方文档:https://www.customd.com/articles/14/jquery-number-format-redux 1.千分位 $. ...

  2. js强制保留两位小数

    计算过程中,发现浮点数如果没有小数位,就会自动舍掉小数点.现在想要做的是无论是整数还是多位小数,强制保留两位小数 1. 转为字符串,对字符串进行操作 //强制保留2位小数,如:2,会在2后面补上00. ...

  3. 保存两位小数点php_PHP 小数点保留两位

    这篇文章主要介绍的内容是关于PHP 小数点保留两位,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 最近在做统计这一块内容,接触关于数字的数据比较多, 用到了三个函数来是 数字保留小数后 ...

  4. vue 保留三位小数_vue input框type=number 保留两位小数自定义组件

    第一步:自定义组件MyNumberInput.vue export default { props: { point: { default: 0 }, max: Number, placeholder ...

  5. php数字两位小数_PHP数字价格格式化,保留两位小数

    jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) numberbo ...

  6. js string转两位小数_js保留两位小数总结

    一 Math.round(),Math.ceil(),Math.floor()的区别 Math.round():根据"round"的字面意思"附近.周围",可以 ...

  7. 对金钱金额的处理--每三位间隔‘,‘,末尾保留两位小数

    对金钱金额的处理–每三位间隔',',末尾保留两位小数 由于项目的原因,最近遇到在下单时需要对金额进行特殊处理,我的需求是:当折扣不足0.01元时,不计入折扣.也就是这部分由客户自行承担. 朋友给我分享 ...

  8. js截取小数点前的数字_js保留两位小数、字符串截取

    在js中实现对数字保留两位小数.自定义函数: function twoDecimal(number){ if(isNaN(number)){ console.log(number + "不是 ...

  9. jq设置保留两位小数_javascript实现保留两位小数的多种方法

    第一种方法:javascript实现保留两位小数一位自动补零代码实例:第一种方法介绍一下如何实现对数字保留两位小数效果,如果数字的原本小数位数不到两位,那么缺少的就自动补零,这个也是为了统一的效果,先 ...

最新文章

  1. Mina源码阅读笔记(一)-整体解读
  2. 虚拟机Ping不通主机解决
  3. C/C++:Windows cmd 指令
  4. SVM熟练到精通1:初识SVM
  5. poll函数_I/O复用 - 三组I/O复用函数的比较
  6. Java NIO (十四)NIO 和 IO 的区别和适用场景分析
  7. 正则表达式各种常规应用
  8. HDU5763 another meaning -(KMP+DP)
  9. oracle11g怎样进行闪回,模拟Oracle11g下用Flashback Data Archive进行恢复的若干场景
  10. php服务端setcookie()原理
  11. Nokia PC 套件版本及在不同Windows 上的安装问题
  12. 笔记本关闭触摸板——解决无法关闭触摸板问题
  13. 盐(salt value)密码学
  14. 2020-12.24 用SURF实现简易的两张图像拼接
  15. 互联网产品经理的学习计划
  16. java 孕周计算器_周期表孕期计算器
  17. unable to load Private Key 6572:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\
  18. 曾经被微软视为毒瘤的“开源”,现在却成了“宠儿”
  19. MATLAB-随机森林实现数据回归分析预测
  20. C语言探索之旅 | 第一部分第三课:你的第一个程序

热门文章

  1. 刚性防水套管止水环 通风穿墙套管
  2. 世界上最遥远的距离,不是生与死,而是我心与你心之间的距离。
  3. WPF C# VS2013 TextBox控件 限制只能输入数字
  4. c语言中recvfrom函数,C语言sendto()函数-经socket传送数据以及recvfrom函数《转》
  5. c语言复合语句,C语言中,可将一系列语句置于一对( )之间从而构成复合语句。...
  6. 微信小程序——二维码推广海报
  7. 已经发车的票还能取出来吗_我买了张高铁票(已付过钱),但是车已经开了,我没上车,票也没取,还能在取出票吗?...
  8. 现代数字通信第八章——阵列信号处理与空域滤波
  9. commons-fileupload实现文件上传,带你领略不一样的世界
  10. 《C++项目开发实战入门》攻坚战