数字转金融格式并且保留n位小数的工具方法

export const Fn = {
deleteDots(arr){
		let reDelete = false
		if(arr[0] == 0 && arr.length>1 && arr[1]!= '.'){
			arr.splice(0,1)
			reDelete = true
		}
		if(arr[0] == '.'){
			arr.unshift('0')
		}
		if(arr[arr.length - 1] == '.'){
			arr.splice(arr.length - 1,1)
			reDelete = true
		}
		if(reDelete && arr.length>0){
			Fn.deleteDots(arr)
		}else{
			return arr
		}
	},
	money(number,precision) {//金融格式的数字
		number = number.toString()
		if(number.includes(',')){
			number = number.replaceAll(',','')
		}
		let numberArr = [...number]
		let dotNumber = 0
		numberArr.map(item=>{
			if(item == '.'){
				dotNumber++
			}
		})
		if(dotNumber>1){
			return 0
		}else{
			if(Boolean(precision)){
				number = (Number(number).toFixed(Number(precision))).toString()
				numberArr = [...number]
			}
			if(numberArr.length>0){
				numberArr = Fn.deleteDots(numberArr)
				if(numberArr.length>0){
					number = numberArr.join('')
				}else{
					number = '0'
				}
				let inte, length
				if (number.includes('.')) {
					inte = number.split('.')[0]
				} else {
					inte = number
				}
				let chars = [...inte]
				length = chars.length
				let more = length % 3
				if (more == 0) {
					more = 3
				}
				let splitIntes = []
				for (let i = more; i <= length; i = i + 3) {
					if (i < 3) {
						splitIntes.push(inte.substring(0, more))
					} else {
						splitIntes.push(inte.substring(i - 3, i))
					}
				}
				let str = splitIntes.join(',')
				if (number.includes('.')) {
					str = str + '.' + number.split('.')[1]
				}
				return str
			}else{
				return 0
			}
		}
	},
```}
上面的方法写在util.js里面,使用的时候页面import引入util,
import {Fn as util} from '@/utils/util'
然后number = util.money(number,precision)
注意:1,number中可以有逗号(多少个,在什么地方都无所谓,工具直接转换了),只能有一个小数点(否则返回0)
2,precision代表保留n位小数,不填写按照原先number保留小数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值