Big.js基本用法 解决js精度问题

涉及到金额等非准确信息的时候 使用big.js来解决相关问题

加法plus2、减法minus3、乘法times4、除法div5、绝对值abs

1、安装依赖

npm install --save big.js

2、main.js 引入

import 'default-passive-events'

3、使用

        1、加法 plus

// 例如:1+2
let result = parseFloat(new Big(1).plus(2))    // 3

        2、减法 minus、

// 例如:1-2
let result = parseFloat(new Big(1).minus(2))   // -1

        3、乘法 times

// 例如:1*2
let result = parseFloat(new Big(1).times(2))    // 2

        4、除法

// 例如:1/2
let result = parseFloat(new Big(1).div(2))    // 0.5

        5、绝对值

// 例如:-3
let result = parseFloat(new Big(-3).abs())   // 3

自己在项目中写的一个函数,供参考

// 计算 含税单价、含税金额、不含税金额、税额
computeAmount(val,row){
	const withTaxAmountAverage = new Big(+row.withoutTaxAmountAverage).times(new Big(+row.taxRate).div(100).plus(1))
	row.withTaxAmountAverage = parseFloat(withTaxAmountAverage.round(2))
	row.withTaxAmount = parseFloat(withTaxAmountAverage.times(row.number).round(2))
	row.withoutTaxAmount = parseFloat(new Big(+row.withoutTaxAmountAverage).times(+row.number).round(2))
	row.taxAmount = parseFloat(new Big(row.withTaxAmount).minus(row.withoutTaxAmount).round(2))
	this.computeAmountTotal()
},
// 计算总 含税金额、不含税金额、税额
computeAmountTotal(){
	let withTaxAmount = new Big(0)
	let withoutTaxAmount = new Big(0)
	let taxAmount = new Big(0)
	this.list.forEach(item => {
		withTaxAmount = withTaxAmount.plus(+item.withTaxAmount)
		withoutTaxAmount = withoutTaxAmount.plus(+item.withoutTaxAmount)
		taxAmount = taxAmount.plus(+item.taxAmount)
	})
	this.formDate.withTaxAmount = parseFloat(withTaxAmount.round(2))
	this.formDate.withoutTaxAmount = parseFloat(withoutTaxAmount.round(2))
	this.formDate.taxAmount = parseFloat(taxAmount.round(2))
},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值