number操作封装函数(不四舍五入、保留两位小数、数字千位化、数字大写化、数字逢三加逗号)

export default {
	// 不四舍五入
    priceStr(price) { 
        let priceStr = parseFloat(price).toFixed(3);
        return priceStr.substring(0, priceStr.length - 1);
    },
    //保留两位小数
    formatDecimal(value) {
        if(!value) return '0.00'

        value = parseFloat(value)
        value = value.toFixed(2) //保留两位小数
        let intPart = Math.trunc(value) //获取整数部分
        let intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') //每三个数字隔一个逗号

        let floatPart = '.00'
        let valueArray = value.toString().split('.') //截取小数部分

        if(valueArray.length === 2){
            floatPart = valueArray[1].toString()
            return intPartFormat + '.' + floatPart
        }
        return intPartFormat + floatPart
    },

    //数字千位化
    formatComma(value){
        value = parseInt(value).toString()
        if (value.length === 4) {
            return  '千'
        }else if(value.length === 5){
            return  '万'
        }else if(value.length === 6){
            return  '十万'
        }else if(value.length === 7){
            return  '百万'
        }else if(value.length === 8){
            return  '千万'
        }else if(value.length === 9){
            return  '亿'
        }else if(value.length === 10){
            return  '十亿'
        }else if(value.length === 11){
            return  '百亿'
        }else if(value.length === 12){
            return  '千亿'
        }else if(value.length === 13){
            return  '兆'
        }else if(value.length === 14){
            return  '十兆'
        }else if(value.length === 15){
            return  '百兆'
        }else if(value.length === 16){
            return  '千兆'
        }else if(value.length === 17){
            return  '京'
        }else if(value.length === 18){
            return  '十京'
        }else if(value.length === 19){
            return  '百京'
        }else if(value.length === 20){
            return  '千京'
        }
    },

    //数字大写化
    toCapital(number) {
        let ret;
        if (number !== '' && number != null && number !== '0') {
            let unit = '仟佰拾亿仟佰拾万仟佰拾元角分'
            let str = ''
            number += '00'
            const point = number.indexOf('.')
            if (point >= 0) {
                number = number.substring(0, point) + number.substr(point + 1, 2)
            }
            unit = unit.substr(unit.length - number.length)
            for (let i = 0; i < number.length; i++) {
                str +=
                    '零壹贰叁肆伍陆柒捌玖'.charAt(number.charAt(i)) + unit.charAt(i)
            }
            ret =
                str
                    .replace(/零(仟|佰|拾|角)/g, '零')
                    .replace(/(零)+/g, '零')
                    .replace(/零(万|亿|元)/g, '$1')
                    .replace(/(亿)万|(拾)/g, '$1$2')
                    .replace(/^元零?|零分/g, '')
                    .replace(/元$/g, '元') + '整'
        }
        return ret;
    },
    //每三位数字分割逗号
    SeparatorComma(number) {
      if(!number) return '0.00'
      number= number.toFixed(2)
      var intPart = Math.trunc(number)// 整数部分
      
      // 将整数部分每三位加一个逗号
      var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') 
      
      var floatPart = '.00' // 预定义小数部分
      var commaArray = number.split('.') //去掉小数点
     
     //如果有整数和小数
      if(commaArray.length === 2) {
        floatPart = commaArray[1].toString() // 拿数组后面部分,小数部分
        if(floatPart.length === 1) {
          return intPartFormat + '.' + floatPart + '0'
        } else {
          return intPartFormat + '.' + floatPart
        }
      } else {
        return intPartFormat + floatPart
      }
    }

使用方法
例:

import Number from "@/utils/js/Number";

let value = Number.formatComma(54541)
//返回 万
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值