码迷,mamicode.com
首页 > 编程语言 > 详细

JAVASCRIPT-货币千分位,并且保留两位小数

时间:2020-07-13 18:45:19      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:return   returns   ram   ||   var   ===   def   one   lse   

  /**
   * @param {*} money[输入的money]
   * @param {string} [货币符号,sysmbol=‘¥‘]
   * @param {number} [小数点位数,places=2]
   * @returns undefined
   */
  function dealMoney(money, sysmbol = ‘¥‘, places = 2) {
    const zero = `${sysmbol}0.00`;
    if (isNaN(money) || money === ‘‘) return zero;
 
     if(money && money != null){
         money = `${money}`;
         let left=money.split(‘.‘)[0]; // 小数点左边部分
         let right=money.split(‘.‘)[1]; // 小数点右边
         // 保留places位小数点,当长度没有到places时,用0补足。
         right = right ? (right.length >= places ? ‘.‘ + right.substr(0, places) : ‘.‘ + right + ‘0‘.repeat(places - right.length)) : (‘.‘ + ‘0‘.repeat(places));
         var temp = left.split(‘‘).reverse().join(‘‘).match(/(\d{1,3})/g); // 分割反向转为字符串然后最多3个,最少1个,将匹配的值放进数组返回
         return (Number(money) < 0 ? ‘-‘ : ‘‘) + sysmbol + temp.join(‘,‘).split(‘‘).reverse().join(‘‘) + right; // 补齐正负号和货币符号,数组转为字符串,通过逗号分隔,再分割(包含逗号也分割)反向转为字符串变回原来的顺序
     } else if (money === 0) {
         return zero;
     } else {
         return zero;
     }
 }
调用:
dealMoney(1); // "¥1.00"
dealMoney(89783, ‘$‘, 3); // "$89,783.000"
dealMoney(‘guo‘, ‘$‘, 3); // "$0.00"

 

JAVASCRIPT-货币千分位,并且保留两位小数

标签:return   returns   ram   ||   var   ===   def   one   lse   

原文地址:https://www.cnblogs.com/yxfboke/p/13294589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!