UNPKG

@ryanuo/utils

Version:

提供多种实用工具函数,涵盖算法、浏览器操作、网络请求等多个领域

107 lines (106 loc) 2.85 kB
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; }