v11.1.0 adds a few useful improvements around formatting, parsing, rounding, and interoperability.
BigNumber.sum() now returns zero when called with no arguments, which makes patterns like BigNumber.sum(...arr) work cleanly even when the array is empty.
BigNumber.sum(...[]).toString() // "0"toBigInt() has been added, so BigNumber values can now be converted directly to native BigInt values.
new BigNumber("123.9").toBigInt(BigNumber.ROUND_DOWN) // 123nThere is also a new BigNumber.fromFormat() method for parsing formatted strings back into BigNumber values.
const options = { prefix: "€", groupSeparator: ".", decimalSeparator: "," }
BigNumber.fromFormat("€1.234.567,89", options).toString() // "1234567.89"Negative decimal places are now supported by decimalPlaces(), toFixed(), and toFormat(), making it easier to round to tens, hundreds, and thousands etc.
new BigNumber("1234.5").toFormat(-2) // "1,200"toFormat() has also been expanded to support minimum and maximum decimal places, and per-call formatting options now fall back to the configured global FORMAT values for anything not explicitly overridden.
new BigNumber("12.3456789").toFormat([2, 5]) // "12.34568"This release also includes a fix for slow hexadecimal integer base conversion when DECIMAL_PLACES is very large, plus improved TypeScript API test coverage.