@ryanuo/utils
Version:
提供多种实用工具函数,涵盖算法、浏览器操作、网络请求等多个领域
107 lines (106 loc) • 2.85 kB
TypeScript
import { Decimal } from 'decimal.js';
export declare const decimal: typeof Decimal;
/**
* 精确加法
* @category Calculator
* @param args 多个数字或字符串
*/
export declare function preciseAdd(...args: (number | string)[]): Decimal;
/**
* 精确减法
* @category Calculator
* @param a 被减数
* @param b 减数
* @param moreNumbers 可选的更多减数
*/
export declare function preciseSub(a: number | string, b: number | string, ...moreNumbers: (number | string)[]): Decimal;
/**
* 精确乘法
* @category Calculator
* @param args 多个数字或字符串
*/
export declare function preciseMul(...args: (number | string)[]): Decimal;
/**
* 精确除法
* @category Calculator
* @param a 被除数
* @param b 除数
* @param moreDivisors 可选的更多除数
*/
export declare function preciseDiv(a: number | string, b: number | string, ...moreDivisors: (number | string)[]): Decimal;
/**
* 四舍五入(银行家舍入法)
* @category Calculator
* @param num 数字或Decimal实例
* @param decimalPlaces 保留小数位数
*/
export declare function roundTo(num: number | string | Decimal, decimalPlaces?: number): Decimal;
/**
* 比较数字大小
* @category Calculator
* @returns
* 1 : a > b
* 0 : a = b
* -1 : a < b
*/
export declare function compare(a: number | string | Decimal, b: number | string | Decimal): number;
/**
* 计算百分比
* @category Calculator
* @param part 部分值
* @param total 总值
* @param {object} [options] - 配置选项
* @param {number} [options.decimalPlaces] - 小数位数
* @param {boolean} [options.isSymbol] - 是否返回百分号
* @returns 百分比值
*/
export declare function calculatePercentage(part: number | string, total: number | string, options?: {
decimalPlaces?: number;
isSymbol?: boolean;
}): string;
/**
* 链式计算
* @category Calculator
* @param num 数字或Decimal实例
* @returns 链式计算对象
* @example
* ```ts twoslash
* import { CalculatorChain } from '@ryanuo/utils'
* new CalculatorChain(100)
* .add(10)
* .sub(5)
* .mul(2)
* .div(3)
* .round(2) // 63.33
*```
*/
export declare class CalculatorChain {
value: Decimal;
constructor(num: number | string);
/**
* 加法
* @param num 数字或字符串
*/
add(num: number | string): CalculatorChain;
/**
* 减法
* @param num 数字或字符串
*/
sub(num: number | string): CalculatorChain;
/**
* 乘法
* @param num 数字或字符串
*/
mul(num: number | string): CalculatorChain;
/**
* 除法
* @param num 数字或字符串
*/
div(num: number | string): CalculatorChain;
/**
* round
* @param decimalPlaces 数字或字符串
* @returns Decimal
*/
round(decimalPlaces?: number): Decimal;
}