1 封装转化方法
const formatAmount = (value, decimals = 2) => {
if (value === null || value === undefined || value === "") {
return new Decimal(0);
}
try {
return new Decimal(value).toDecimalPlaces(decimals);
} catch (e) {
console.warn("Invalid value for Decimal conversion:", value);
return new Decimal(0);
}
};
2 加减乘除
import Decimal from 'decimal.js';
const a = new Decimal(10.5);
const b = new Decimal(3.2);
const sum = a.plus(b);
const difference = a.minus(b);
const product = a.times(b);
const quotient = a.dividedBy(b);
3 转成数值类型
const regularNumber = decimalValue.toNumber();
4 比较运算
amount.greaterThan(100)
amount.greaterThanOrEqualTo(100)
amount.lessThan(100)
amount.lessThanOrEqualTo(100)
amount.equals(100)
amount.gt(100)
amount.gte(100)
amount.lt(100)
amount.lte(100)
amount.eq(100)
5 绝对值、零的用法
const changeAmount = computed(() => {
return remainAmount.value.lessThan(0) ? remainAmount.value.abs() : new Decimal(0);
})
6 合计
const verifiedAmount = computed(() => {
const paymentSum = (props.orderData.salesOrderPaymentList || []).reduce((sum, item) => {
return sum.plus(proxy.formatAmount(item.payAmount));
}, new Decimal(0)) ;
return paymentSum.plus(proxy.formatAmount(props.orderData.zeroAmount));
})