1
0
mirror of https://github.com/MikeMcl/decimal.js.git synced 2024-10-27 20:34:12 +00:00
MikeMcl_decimal.js/decimal.d.ts

317 lines
8.7 KiB
TypeScript
Raw Normal View History

2017-11-25 23:42:03 +00:00
// Type definitions for decimal.js >=7.0.0
// Project: https://github.com/MikeMcl/decimal.js
// Definitions by: Michael Mclaughlin <https://github.com/MikeMcl>
// Definitions: https://github.com/MikeMcl/decimal.js
//
// Documentation: http://mikemcl.github.io/decimal.js/
//
// Exports (available globally or when using import):
2017-11-25 23:42:03 +00:00
//
// class Decimal (default export)
2017-11-25 23:42:03 +00:00
// type Decimal.Constructor
// type Decimal.Instance
2017-11-25 23:42:03 +00:00
// type Decimal.Modulo
// type Decimal.Rounding
// type Decimal.Value
2017-11-25 23:42:03 +00:00
// interface Decimal.Config
//
// Example (alternative syntax commented-out):
2017-11-25 23:42:03 +00:00
//
// import {Decimal} from "decimal.js"
// //import Decimal from "decimal.js"
2017-11-25 23:42:03 +00:00
//
// let r: Decimal.Rounding = Decimal.ROUND_UP;
// let c: Decimal.Configuration = {precision: 4, rounding: r};
// Decimal.set(c);
// let v: Decimal.Value = '12345.6789';
// let d: Decimal = new Decimal(v);
// //let d: Decimal.Instance = new Decimal(v);
//
// The use of compiler option `--strictNullChecks` is recommended.
2017-11-25 23:42:03 +00:00
export default Decimal;
export namespace Decimal {
export type Config = DecimalConfig;
export type Constructor = DecimalConstructor;
export type Instance = DecimalInstance;
export type Modulo = DecimalModulo;
export type Rounding = DecimalRounding;
export type Value = DecimalValue;
}
2017-11-25 23:42:03 +00:00
declare global {
const Decimal: DecimalConstructor;
type Decimal = DecimalInstance;
namespace Decimal {
type Config = DecimalConfig;
type Constructor = DecimalConstructor;
type Instance = DecimalInstance;
type Modulo = DecimalModulo;
type Rounding = DecimalRounding;
type Value = DecimalValue;
2017-11-25 23:42:03 +00:00
}
}
type DecimalInstance = Decimal;
type DecimalConstructor = typeof Decimal;
type DecimalValue = string | number | Decimal;
type DecimalRounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
type DecimalModulo = DecimalRounding | 9;
// http://mikemcl.github.io/decimal.js/#constructor-properties
interface DecimalConfig {
precision?: number;
rounding?: DecimalRounding;
toExpNeg?: number;
toExpPos?: number;
minE?: number;
maxE?: number;
crypto?: boolean;
modulo?: DecimalModulo;
2017-12-09 22:05:28 +00:00
defaults?: boolean;
}
2017-11-25 23:42:03 +00:00
export declare class Decimal {
readonly d: number[];
readonly e: number;
readonly s: number;
2017-12-09 22:05:28 +00:00
private readonly name: string;
2017-11-25 23:42:03 +00:00
constructor(n: DecimalValue);
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
absoluteValue(): Decimal;
abs(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
ceil(): Decimal;
2017-11-25 23:42:03 +00:00
comparedTo(n: DecimalValue): number;
cmp(n: DecimalValue): number;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
cosine(): Decimal;
cos(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
cubeRoot(): Decimal;
cbrt(): Decimal;
2017-11-25 23:42:03 +00:00
decimalPlaces(): number;
dp(): number;
2017-12-15 10:37:01 +00:00
dividedBy(n: DecimalValue): Decimal;
div(n: DecimalValue): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
dividedToIntegerBy(n: DecimalValue): Decimal;
divToInt(n: DecimalValue): Decimal;
2017-11-25 23:42:03 +00:00
equals(n: DecimalValue): boolean;
eq(n: DecimalValue): boolean;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
floor(): Decimal;
2017-11-25 23:42:03 +00:00
greaterThan(n: DecimalValue): boolean;
gt(n: DecimalValue): boolean;
2017-11-25 23:42:03 +00:00
greaterThanOrEqualTo(n: DecimalValue): boolean;
gte(n: DecimalValue): boolean;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
hyperbolicCosine(): Decimal;
cosh(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
hyperbolicSine(): Decimal;
sinh(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
hyperbolicTangent(): Decimal;
tanh(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
inverseCosine(): Decimal;
acos(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
inverseHyperbolicCosine(): Decimal;
acosh(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
inverseHyperbolicSine(): Decimal;
asinh(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
inverseHyperbolicTangent(): Decimal;
atanh(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
inverseSine(): Decimal;
asin(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
inverseTangent(): Decimal;
atan(): Decimal;
2017-11-25 23:42:03 +00:00
isFinite(): boolean;
isInteger(): boolean;
isInt(): boolean;
isNaN(): boolean;
isNegative(): boolean;
isNeg(): boolean;
isPositive(): boolean;
isPos(): boolean;
isZero(): boolean;
lessThan(n: DecimalValue): boolean;
lt(n: DecimalValue): boolean;
2017-11-25 23:42:03 +00:00
lessThanOrEqualTo(n: DecimalValue): boolean;
lte(n: DecimalValue): boolean;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
logarithm(n?: DecimalValue): Decimal;
log(n?: DecimalValue): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
minus(n: DecimalValue): Decimal;
sub(n: DecimalValue): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
modulo(n: DecimalValue): Decimal;
mod(n: DecimalValue): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
naturalExponential(): Decimal;
exp(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
naturalLogarithm(): Decimal;
ln(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
negated(): Decimal;
neg(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
plus(n: DecimalValue): Decimal;
add(n: DecimalValue): Decimal;
2017-11-25 23:42:03 +00:00
precision(includeZeros?: boolean): number;
sd(includeZeros?: boolean): number;
2017-12-15 10:37:01 +00:00
round(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
sine() : Decimal;
sin() : Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
squareRoot(): Decimal;
sqrt(): Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
tangent() : Decimal;
tan() : Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
times(n: DecimalValue): Decimal;
mul(n: DecimalValue) : Decimal;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
toBinary(significantDigits?: number): string;
toBinary(significantDigits: number, rounding: DecimalRounding): string;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
toDecimalPlaces(decimalPlaces?: number): Decimal;
toDecimalPlaces(decimalPlaces: number, rounding: DecimalRounding): Decimal;
toDP(decimalPlaces?: number): Decimal;
toDP(decimalPlaces: number, rounding: DecimalRounding): Decimal;
2017-11-25 23:42:03 +00:00
toExponential(decimalPlaces?: number): string;
toExponential(decimalPlaces: number, rounding: DecimalRounding): string;
2017-11-25 23:42:03 +00:00
toFixed(decimalPlaces?: number): string;
toFixed(decimalPlaces: number, rounding: DecimalRounding): string;
2017-11-25 23:42:03 +00:00
toFraction(max_denominator?: DecimalValue): Decimal[];
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
toHexadecimal(significantDigits?: number): string;
toHexadecimal(significantDigits: number, rounding: DecimalRounding): string;
toHex(significantDigits?: number): string;
toHex(significantDigits: number, rounding?: DecimalRounding): string;
2017-11-25 23:42:03 +00:00
toJSON(): string;
2017-12-15 10:37:01 +00:00
toNearest(n: DecimalValue, rounding?: DecimalRounding): Decimal;
2017-11-25 23:42:03 +00:00
toNumber(): number;
2017-12-15 10:37:01 +00:00
toOctal(significantDigits?: number): string;
toOctal(significantDigits: number, rounding: DecimalRounding): string;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
toPower(n: DecimalValue): Decimal;
pow(n: DecimalValue): Decimal;
2017-11-25 23:42:03 +00:00
toPrecision(significantDigits?: number): string;
toPrecision(significantDigits: number, rounding: DecimalRounding): string;
2017-11-25 23:42:03 +00:00
2017-12-15 10:37:01 +00:00
toSignificantDigits(significantDigits?: number): Decimal;
toSignificantDigits(significantDigits: number, rounding: DecimalRounding): Decimal;
toSD(significantDigits?: number): Decimal;
toSD(significantDigits: number, rounding: DecimalRounding): Decimal;
2017-11-25 23:42:03 +00:00
toString(): string;
2017-12-15 10:37:01 +00:00
truncated(): Decimal;
trunc(): Decimal;
2017-11-25 23:42:03 +00:00
valueOf(): string;
2017-12-15 10:37:01 +00:00
static abs(n: DecimalValue): Decimal;
static acos(n: DecimalValue): Decimal;
static acosh(n: DecimalValue): Decimal;
static add(x: DecimalValue, y: DecimalValue): Decimal;
static asin(n: DecimalValue): Decimal;
static asinh(n: DecimalValue): Decimal;
static atan(n: DecimalValue): Decimal;
static atanh(n: DecimalValue): Decimal;
static atan2(y: DecimalValue, x: DecimalValue): Decimal;
static cbrt(n: DecimalValue): Decimal;
static ceil(n: DecimalValue): Decimal;
static clone(object?: DecimalConfig): DecimalConstructor;
static config(object: DecimalConfig): DecimalConstructor;
2017-12-15 10:37:01 +00:00
static cos(n: DecimalValue): Decimal;
static cosh(n: DecimalValue): Decimal;
static div(x: DecimalValue, y: DecimalValue): Decimal;
static exp(n: DecimalValue): Decimal;
static floor(n: DecimalValue): Decimal;
static hypot(...n: DecimalValue[]): Decimal;
2017-12-09 22:05:28 +00:00
static isDecimal(object: any): boolean
2017-12-15 10:37:01 +00:00
static ln(n: DecimalValue): Decimal;
static log(n: DecimalValue, base?: DecimalValue): Decimal;
static log2(n: DecimalValue): Decimal;
static log10(n: DecimalValue): Decimal;
static max(...n: DecimalValue[]): Decimal;
static min(...n: DecimalValue[]): Decimal;
static mod(x: DecimalValue, y: DecimalValue): Decimal;
static mul(x: DecimalValue, y: DecimalValue): Decimal;
2017-12-14 10:28:30 +00:00
static noConflict(): DecimalConstructor; // Browser only
2017-12-15 10:37:01 +00:00
static pow(base: DecimalValue, exponent: DecimalValue): Decimal;
static random(significantDigits?: number): Decimal;
static round(n: DecimalValue): Decimal;
static set(object: DecimalConfig): DecimalConstructor;
2017-12-15 10:37:01 +00:00
static sign(n: DecimalValue): Decimal;
static sin(n: DecimalValue): Decimal;
static sinh(n: DecimalValue): Decimal;
static sqrt(n: DecimalValue): Decimal;
static sub(x: DecimalValue, y: DecimalValue): Decimal;
static tan(n: DecimalValue): Decimal;
static tanh(n: DecimalValue): Decimal;
static trunc(n: DecimalValue): Decimal;
2017-12-10 18:32:38 +00:00
static readonly default?: DecimalConstructor;
static readonly Decimal?: DecimalConstructor;
2017-11-25 23:42:03 +00:00
static readonly precision: number;
static readonly rounding: DecimalRounding;
2017-11-25 23:42:03 +00:00
static readonly toExpNeg: number;
static readonly toExpPos: number;
static readonly minE: number;
static readonly maxE: number;
static readonly crypto: boolean;
static readonly modulo: DecimalModulo;
2017-11-25 23:42:03 +00:00
static readonly ROUND_UP: 0;
static readonly ROUND_DOWN: 1;
static readonly ROUND_CEIL: 2;
static readonly ROUND_FLOOR: 3;
static readonly ROUND_HALF_UP: 4;
static readonly ROUND_HALF_DOWN: 5;
static readonly ROUND_HALF_EVEN: 6;
static readonly ROUND_HALF_CEIL: 7;
static readonly ROUND_HALF_FLOOR: 8;
static readonly EUCLID: 9;
}