export default Decimal; export declare class Decimal { /** * The Decimal constructor and exported function. * Return a new Decimal instance. * * @param value {number|string|Decimal} A numeric value. * */ constructor(value: Numeric) /** * Return a new Decimal whose value is the absolute value of this Decimal. */ absoluteValue(): Decimal; /** * Return a new Decimal whose value is the absolute value of this Decimal. */ abs(): Decimal; /** * Return * 1 if the value of this Decimal is greater than the value of `y`, * -1 if the value of this Decimal is less than the value of `y`, * 0 if they have the same value */ comparedTo(y: Numeric): 1|0|-1; /** * Return * 1 if the value of this Decimal is greater than the value of `y`, * -1 if the value of this Decimal is less than the value of `y`, * 0 if they have the same value */ cmp(y: Numeric): 1|0|-1; /** * Return the number of decimal places of the value of this Decimal. */ decimalPlaces(): number; /** * Return the number of decimal places of the value of this Decimal. */ dp(): number; /** * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to * `precision` significant digits. * */ dividedBy(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to * `precision` significant digits. * */ div(y: Numeric): Decimal; /** * Return a new Decimal whose value is the integer part of dividing the value of this Decimal * by the value of `y`, truncated to `precision` significant digits. * */ dividedToIntegerBy(y: Numeric): Decimal; /** * Return a new Decimal whose value is the integer part of dividing the value of this Decimal * by the value of `y`, truncated to `precision` significant digits. * */ idiv(y: Numeric): Decimal; /** * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false. */ equals(y: Numeric): boolean; /** * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false. */ eq(y: Numeric): boolean; /** * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent). */ exponent(): number; /** * Return true if the value of this Decimal is greater than the value of `y`, otherwise return * false. */ greaterThan(y: Numeric): boolean; /** * Return true if the value of this Decimal is greater than the value of `y`, otherwise return * false. */ gt(y: Numeric): boolean; /** * Return true if the value of this Decimal is greater than or equal to the value of `y`, * otherwise return false. * */ greaterThanOrEqualTo(y: Numeric): boolean; /** * Return true if the value of this Decimal is greater than or equal to the value of `y`, * otherwise return false. * */ gte(y: Numeric): boolean; /** * Return true if the value of this Decimal is an integer, otherwise return false. * */ isInteger(): boolean; /** * Return true if the value of this Decimal is an integer, otherwise return false. * */ isint(): boolean; /** * Return true if the value of this Decimal is negative, otherwise return false. * */ isNegative(): boolean; /** * Return true if the value of this Decimal is negative, otherwise return false. * */ isneg(): boolean; /** * Return true if the value of this Decimal is positive, otherwise return false. * */ isPositive(): boolean; /** * Return true if the value of this Decimal is positive, otherwise return false. * */ ispos(): boolean; /** * Return true if the value of this Decimal is 0, otherwise return false. * */ isZero(): boolean; /** * Return true if the value of this Decimal is less than `y`, otherwise return false. * */ lessThan(y: Numeric): boolean; /** * Return true if the value of this Decimal is less than `y`, otherwise return false. * */ lt(y: Numeric): boolean; /** * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false. * */ lessThanOrEqualTo(y: Numeric): boolean; /** * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false. * */ lte(y: Numeric): boolean; /** * Return the logarithm of the value of this Decimal to the specified base, truncated to * `precision` significant digits. * * If no base is specified, return log[10](x). * * log[base](x) = ln(x) / ln(base) * * The maximum error of the result is 1 ulp (unit in the last place). * */ logarithm(base?: Numeric): Decimal; /** * Return the logarithm of the value of this Decimal to the specified base, truncated to * `precision` significant digits. * * If no base is specified, return log[10](x). * * log[base](x) = ln(x) / ln(base) * * The maximum error of the result is 1 ulp (unit in the last place). * */ log(base?: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to * `precision` significant digits. * */ minus(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to * `precision` significant digits. * */ sub(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to * `precision` significant digits. * */ modulo(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to * `precision` significant digits. * */ mod(y: Numeric): Decimal; /** * Return a new Decimal whose value is the natural exponential of the value of this Decimal, * i.e. the base e raised to the power the value of this Decimal, truncated to `precision` * significant digits. * */ naturalExponetial(): Decimal; /** * Return a new Decimal whose value is the natural exponential of the value of this Decimal, * i.e. the base e raised to the power the value of this Decimal, truncated to `precision` * significant digits. * */ exp(): Decimal; /** * Return a new Decimal whose value is the natural logarithm of the value of this Decimal, * truncated to `precision` significant digits. * */ naturalLogarithm(): Decimal; /** * Return a new Decimal whose value is the natural logarithm of the value of this Decimal, * truncated to `precision` significant digits. * */ ln(): Decimal; /** * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by * -1. * */ negated(): Decimal; /** * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by * -1. * */ neg(): Decimal; /** * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to * `precision` significant digits. * */ plus(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to * `precision` significant digits. * */ add(y: Numeric): Decimal; /** * Return the number of significant digits of the value of this Decimal. * * @param zeros {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0. */ precision(zeros: boolean|number): number; /** * Return the number of significant digits of the value of this Decimal. * * @param zeros {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0. */ sd(zeros: boolean|number): number; /** * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision` * significant digits. * */ squareRoot(): Decimal; /** * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision` * significant digits. * */ sqrt(): Decimal; /** * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to * `precision` significant digits. * */ times(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to * `precision` significant digits. * */ mul(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp` * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted. * * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal. * * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive. * */ toDecimalPlaces(dp?: number, rm?: number): Decimal; /** * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp` * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted. * * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal. * * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive. * */ todp(dp?: number, rm?: number): Decimal; /** * Return a string representing the value of this Decimal in exponential notation rounded to * `dp` fixed decimal places using rounding mode `rounding`. * * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive. * */ toExponential(dp?: number, rm?: number): string; /** * Return a string representing the value of this Decimal in normal (fixed-point) notation to * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is * omitted. * * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'. * * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive. * * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. * (-0).toFixed(3) is '0.000'. * (-0.5).toFixed(0) is '-0'. * */ toFixed(dp?: number, rm?: number): string; /** * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using * rounding mode `rounding`. * */ toInteger(): Decimal; /** * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using * rounding mode `rounding`. * */ toint(): Decimal; /** * Return the value of this Decimal converted to a number primitive. * */ toNumber(): number; /** * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, * truncated to `precision` significant digits. * * For non-integer or very large exponents pow(x, y) is calculated using * * x^y = exp(y*ln(x)) * * The maximum error is 1 ulp (unit in last place). * * @param y {number|string|Decimal} The power to which to raise this Decimal. * */ toPower(y: Numeric): Decimal; /** * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, * truncated to `precision` significant digits. * * For non-integer or very large exponents pow(x, y) is calculated using * * x^y = exp(y*ln(x)) * * The maximum error is 1 ulp (unit in last place). * * @param y {number|string|Decimal} The power to which to raise this Decimal. * */ pow(y: Numeric): Decimal; /** * Return a string representing the value of this Decimal rounded to `sd` significant digits * using rounding mode `rounding`. * * Return exponential notation if `sd` is less than the number of digits necessary to represent * the integer part of the value in normal notation. * * @param sd {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive. * */ toPrecision(sd?: number, rm?: number): string; /** * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd` * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if * omitted. * * @param sd {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive. * */ toSignificantDigits(sd?: number, rm?: number): Decimal; /** * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd` * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if * omitted. * * @param sd {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive. * */ tosd(sd?: number, rm?: number): Decimal; /** * Return a string representing the value of this Decimal. * * Return exponential notation if this Decimal has a positive exponent equal to or greater than * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`. * */ toString(): string; /** * Return a string representing the value of this Decimal. * * Return exponential notation if this Decimal has a positive exponent equal to or greater than * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`. * */ valueOf(): string; /** * Return a string representing the value of this Decimal. * * Return exponential notation if this Decimal has a positive exponent equal to or greater than * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`. * */ val(): string; /** * Return a string representing the value of this Decimal. * * Return exponential notation if this Decimal has a positive exponent equal to or greater than * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`. * */ toJSON(): string; /** * Create and return a Decimal constructor with the same configuration properties as this Decimal * constructor. * * @param config? Config */ static clone(config?: Config): typeof Decimal; /** * Configure global settings for a Decimal constructor. */ static config(config: Config): Decimal; /** * Configure global settings for a Decimal constructor. */ static set(config: Config): Decimal; // The maximum number of significant digits of the result of a calculation or base conversion. // E.g. `Decimal.config({ precision: 20 });` static precision: number; // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`, // `toFixed`, `toPrecision` and `toSignificantDigits`. // // E.g. // `Decimal.rounding = 4;` // `Decimal.rounding = Decimal.ROUND_HALF_UP;` static rounding: number; static readonly ROUND_UP: number; static readonly ROUND_DOWN: number; static readonly ROUND_CEIL: number; static readonly ROUND_FLOOR: number; static readonly ROUND_HALF_UP: number; static readonly ROUND_HALF_DOWN: number; static readonly ROUND_HALF_EVEN: number; static readonly ROUND_HALF_CEIL: number; static readonly ROUND_HALF_FLOOR: number; // The exponent value at and beneath which `toString` returns exponential notation. // JavaScript numbers: -7 static toExpNeg: number; // 0 to -MAX_E // The exponent value at and above which `toString` returns exponential notation. // JavaScript numbers: 21 static toExpPos: number; // 0 to MAX_E // The natural logarithm of 10. static LN10: Decimal; } export interface Config { precision?: number; rounding?: number; toExpNeg?: number; toExpPos?: number; LN10?: Numeric; } export type Numeric = string|number|Decimal;