What's the Math.trunc() Alternative for BigInt Values in JavaScript?

The JavaScript Math.trunc() method only works on the number primitive values, and not on the bigint primitive values:

// TypeError: Cannot convert a BigInt value to a number
Math.trunc(2n);

In fact, bigint values have no need for a "truncate" (or "trunc") method because:

  1. Bigint values are integers, and as such do not have a fraction part to "truncate" (or remove);
  2. Operations involving bigint values that produce a fractional result (such as division) are automatically truncated, and do not return any fractional digits.

For example:

// ES10+
const truncated = 10n / 4n;

console.log(truncated); // 2n (and not 2.5n)

The "n" at the end of a number merely suggests that the number is a bigint primitive.


This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.