You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.4 KiB
68 lines
1.4 KiB
import {Decimal} from "decimal.js";
|
|
// args第一位为被操作数据
|
|
|
|
//保留小数向上取整
|
|
function formatUp(num, len) {
|
|
return new Decimal(num).toDecimalPlaces(len, Decimal.ROUND_UP).toString()
|
|
}
|
|
|
|
|
|
//保留小数向下取整
|
|
function formatDown(num, len) {
|
|
return new Decimal(num).toDecimalPlaces(len, Decimal.ROUND_DOWN).toNumber()
|
|
}
|
|
|
|
//加法
|
|
function add(...args) {
|
|
let result = new Decimal(args[0]);
|
|
for (let i = 1; i < args.length; i++) {
|
|
result = result.add(new Decimal(args[i]));
|
|
}
|
|
return result.toNumber();
|
|
}
|
|
|
|
//减法
|
|
function sub(...args) {
|
|
let result = new Decimal(args[0]);
|
|
for (let i = 1; i < args.length; i++) {
|
|
result = result.sub(new Decimal(args[i]));
|
|
}
|
|
return result.toNumber();
|
|
}
|
|
|
|
//乘法
|
|
function mul(...args) {
|
|
let result = new Decimal(args[0]);
|
|
for (let i = 1; i < args.length; i++) {
|
|
result = result.mul(new Decimal(args[i]));
|
|
}
|
|
return result.toNumber();
|
|
}
|
|
|
|
//除法
|
|
function div(...args) {
|
|
let result = new Decimal(args[0]);
|
|
for (let i = 1; i < args.length; i++) {
|
|
result = result.div(new Decimal(args[i]));
|
|
}
|
|
return result.toNumber();
|
|
}
|
|
|
|
//取余
|
|
function mod(...args) {
|
|
let result = new Decimal(args[0]);
|
|
for (let i = 1; i < args.length; i++) {
|
|
result = result.modulo(new Decimal(args[i]));
|
|
}
|
|
return result.toNumber();
|
|
}
|
|
|
|
export default {
|
|
formatUp,
|
|
formatDown,
|
|
add,
|
|
sub,
|
|
mul,
|
|
div,
|
|
mod
|
|
};
|