The BigNumber constructor creates new BigNumber instances from various input types including strings, numbers, and other BigNumber instances.
Creates a new BigNumber instance with arbitrary precision.
/**
* Creates a new BigNumber instance
* @param {string|number|BigNumber.Instance} n - The numeric value
* @param {number} [base] - The base of n (2-36), default 10
* @returns {BigNumber} New BigNumber instance
*/
new BigNumber(n, base)Parameters:
n: The numeric value as string, number, or BigNumber instancebase (optional): The base of the input value (2-36). If specified, input is rounded according to current DECIMAL_PLACES and ROUNDING_MODE settingsUsage Examples:
// From numbers
const x = new BigNumber(123.4567);
const y = new BigNumber(-0.8);
const z = new BigNumber(Infinity);
// From strings
const a = new BigNumber('123.4567');
const b = new BigNumber('-735.0918e-430');
const c = new BigNumber('0xff'); // hex literal
const d = new BigNumber('-0b10110100.1'); // binary literal
// From other BigNumbers
const copy = new BigNumber(x);
// With base conversion
const hex = new BigNumber('ff.8', 16); // 255.5
const binary = new BigNumber('-10110100.1', 2); // -180.5
const base5 = new BigNumber('123412421.234324', 5); // 607236.557696
// Special values
const nan = new BigNumber(NaN);
const negInf = new BigNumber('-Infinity');
const negZero = new BigNumber(-0); // becomes '0'Creates BigNumber from object representation (use with caution).
/**
* Creates BigNumber from object literal
* @param {object} obj - Object with s, e, c, _isBigNumber properties
* @returns {BigNumber} New BigNumber instance
*/
new BigNumber({ s: number, e: number, c: number[], _isBigNumber: true })Usage Example:
// Create from object literal (advanced usage)
const bn = new BigNumber({
s: 1,
e: 2,
c: [777, 12300000000000],
_isBigNumber: true
}); // '777.123'
// Verify object is well-formed
BigNumber.isBigNumber(bn); // trueInput Validation:
Base Conversion:
Precision Handling:
Debug Mode:
BigNumber.DEBUG = true;
new BigNumber('invalid'); // throws error instead of returning NaN
new BigNumber(12345678901234567); // throws error for >15 digitsThe constructor handles various error conditions:
// Error examples
new BigNumber('blurgh'); // 'NaN' (or error if DEBUG=true)
new BigNumber(9, 2); // 'NaN' (9 invalid in base 2)
new BigNumber('1e500000'); // May return 'Infinity' based on RANGE setting