对金钱金额的处理–每三位间隔’,’,末尾保留两位小数

由于项目的原因,最近遇到在下单时需要对金额进行特殊处理,我的需求是:当折扣不足0.01元时,不计入折扣。也就是这部分由客户自行承担。

朋友给我分享了他们公司的coding,虽不满足我的需求,但是对金额的处理是每隔三位一个,,末尾保留两位小数,先mark一下:

1 放在watch

housePrice (newVal) {newVal = newVal.substring(0, 18)let temp = []temp = newVal.split('.')if (temp.length === 1 && temp[0] === '') {this.housePrice = ''} else if (temp.length === 1 && temp[0] !== '' && temp[0].length > 1) {if (temp[0].slice(0, 1) === '0') {let l = temp[0].lengthtemp[0] = temp[0].slice(1, l)}this.housePrice = temp.join('.')} else if (temp.length === 2 && temp[0] === '') {temp[0] = '0'this.housePrice = temp.join('.')} else if (temp.length === 2 && temp[1].length > 2) {temp[1] = temp[1].slice(0, 2)this.housePrice = temp.join('.')}return this.housePrice
},

2.对数据进行除100操作后再处理

Vue.filter('filterMoneyDiv100', (value) => {if (value === 0 || value === '0') {return '0.00'} else if (value === '') {return ''} else if (value && value !== 0) {value = value / 100value = value.toString()let reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/if (reg.test(value)) {let n = !isFinite(+value) ? 0 : parseFloat(value)let prec = 2let sep = ','let dec = '.'let s = ''let toFixedFix = function (n, prec) {let k = Math.pow(10, prec)return '' + Math.round(n * k) / k}s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')var re = /(-?\d+)(\d{3})/while (re.test(s[0])) {s[0] = s[0].replace(re, '$1' + sep + '$2')}if ((s[1] || '').length < prec) {s[1] = s[1] || ''s[1] += new Array(prec - s[1].length + 1).join('0')}return s.join(dec)} else {return value}}
})

3.对数据进行乘以100 后再操作

Vue.filter('filterMoney', (value) => {if (value && value !== 0) {value = value.toString()let reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/if (reg.test(value)) {let n = !isFinite(+value) ? 0 : parseFloat(value)let prec = 2let sep = ','let dec = '.'let s = ''let toFixedFix = function (n, prec) {let k = Math.pow(10, prec)return '' + Math.round(n * k) / k}s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')var re = /(-?\d+)(\d{3})/while (re.test(s[0])) {s[0] = s[0].replace(re, '$1' + sep + '$2')}if ((s[1] || '').length < prec) {s[1] = s[1] || ''s[1] += new Array(prec - s[1].length + 1).join('0')}return s.join(dec)} else {return value}} else if (value === 0) {return '0.00'}
})

4.若小数的第三位数直接舍弃,而不是进行四舍五入,则使用以下方法

moneyVal (val) {if (val && val != 0) {val = Math.floor(val * 100) / 100return val.toFixed(2) // 最后使用toFixed修饰下} else {return '0.00'}
}

注意:
该方法在val 值为2.01时,输出是2.00,这个需要在使用时尽量避开,使得不进此方法。

对金钱金额的处理--每三位间隔‘,‘,末尾保留两位小数相关推荐

  1. JS 数字千位分隔符且保留两位小数

    数字千位分隔符且保留两位小数 1.仅需要整数位千位分隔 num.toLocaleString() 2.仅需要保留两位小数 num.toFixed(2) 3.需要千位分隔符且带两位小数 Thousand ...

  2. 前端保留两位有效数字_js保留两位小数方法总结

    本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一.我们首先从经典的"四舍五入"算法讲起 1.四舍五入的情 ...

  3. php百分比四舍五入两位,php四舍五入保留两位小数有哪些实现方法

    php四舍五入保留两位小数有哪些实现方法 发布时间:2020-08-06 10:12:55 来源:亿速云 阅读:96 作者:Leah 本篇文章给大家分享的是有关php四舍五入保留两位小数有哪些实现方法 ...

  4. php除以100保留两位小数点,php保留两位小数的几种方法介绍

    1.不进位的情况 比如3.149569取小数点后两位,最后两位不能四舍五入.结果:3.14. 可以使用 floor 函数 该函数是舍去取整.例如,floor(4.66456) 结果:4 . floor ...

  5. java拼接sql保留两位小数_SQL 保留两位小数的实现方式

    问题: 客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20: 分析: 首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过数据库查询的 ...

  6. 实测MySQL 查询结果保留两位小数函数的区别汇总

    MySQL查询结果保留两位小数常用的几个函数的区别,使用场景. 1.随机函数format(x,d) 2.格式化小数函数format(x,d) 例如: select format(23456.789,2 ...

  7. 微信小程序,格式化千分位并保留两位小数

    1.新建utils.wxs //逢三位转逗号,保留两位小数,支持负数 var threeNumForTwo = {money_three_for_two_thousands: function(num ...

  8. 用python计算矩形面积结果四舍五入保留两位小数_你还在计算器开平方?太low了吧,学霸考场都用这种方法开平方...

    一般情况下,我们生活中遇到一个需要开平方的数时,第一反应就是拿手机计算器计算,但考试时怎么做?不让带计算器,包括具有计算功能的手表都严禁携带.那这个时候怎么做呢?手算开平方就是一种随时适用的方法,无论 ...

  9. php转换成保留两位小数,php如何实现转成两位小数

    php如何实现转成两位小数 php转成两位小数的实现方法:1.利用round对浮点数进行四舍五入:2.利用sprintf格式化字符串:3.利用千位分组来格式化数字的函数number_format. 推 ...

最新文章

  1. java build path entries 为空_同事的代码简直没法看,我来教你如何更优雅的设计Java异常...
  2. Docker Basic
  3. sql中union 和 union all的区别
  4. 总结一下qsort()函数的使用与注意
  5. 无处不在:iOS平台WebView终于支持WebRTC
  6. php 在线人数 mysql_PHP+MYSQL实例:编写网站在线人数的程序代码
  7. screentogif 屏幕录制生成gif图片的软件安装过程
  8. 第十节(this关键字 static关键字)
  9. 1909升级卡64_【春节配置推荐】第3期:设计娱乐万元配置推荐、四代升级建议参考...
  10. 【中台实践】华为大数据中台架构分享.pdf
  11. hping3使用详解
  12. Linux系统删除文件夹命令
  13. Excel如何计算两列数据的乘积之和(相乘之后相加)
  14. Python数据分析——matplotlib折线图和散点图
  15. c语言幂函数_了解C / C ++中的幂函数
  16. NC 一些常用方法总结
  17. 以数据为中心的路由协议_腰部零售企业如何以数据中台为中心,加速数字化落地...
  18. 汉语计算机语言,汉语是唯一可用于计算机时代的语言!
  19. 996工作制该取消吗?
  20. 织梦网站转移服务器,DEDE织梦网站转移空间换域名方法

热门文章

  1. ​川希:互联网创业赚钱就是抄抄抄,越抄越赚钱!
  2. LattePanda 之深入学习 Firmata通讯
  3. mpv 终极教程【安装、快捷键、 播放列表jonniek/mpv-playlistmanager】
  4. 如何借助微信SEO,实现快速微信引流10000+
  5. spring 事务提交成功后,再去发送事件
  6. 向Excel中批量插入图片,自动排版
  7. Android中监听Home键的4种方法总结
  8. 关于Selenium启动Chrome浏览器闪退问题
  9. [廖雪峰python教程列表生成器练习]杨辉三角定义如下,把每一行看做一个list,试写一个generator,不断输出下一行的list
  10. 笔记:神经网络与深度学习—绪论