The JavaScript Math.abs()
method only works on the number primitive values, and not on the bigint primitive values. Therefore, to determine the absolute value for bigint numbers, you can do the following:
// ES10+ const abs = (n) => (n < 0n) ? -n : n; console.log(abs(-18014398509481982n)); // 18014398509481982n console.log(abs(BigInt(-Number.MAX_SAFE_INTEGER))); // 9007199254740991n console.log(abs(-10n)); // 10n console.log(abs(-0n)); // 0n
The "n
" at the end of a number merely suggests that the number is a bigint primitive.
This function works with numbers as well:
// ... console.log(abs(-25)); // 25 console.log(abs(-Infinity)); // Infinity
The only caveat is that -0
number literal will return -0
. If you must absolutely support this edge case, then you can use the following instead:
const abs = (n) => (n === -0 || n < 0n) ? -n : n; console.log(abs(-0)); // 0
Hope you found this post useful. It was published . Please show your love and support by sharing this post.