Why is the minimal value greater than zero?

Viewed 41

I was just testing numbers in JavaScript when I noticed something weird occurring.

Why is Number.MIN_VALUE greater than 0? I expected it to be a very small negative value.

console.log(Number.MIN_VALUE > 0);

Is there some mathematics behind it, or is it a JavaScript precision error?

2 Answers

The value of Number.MIN_VALUE is equal to 5e-324. This can be shown below.

console.log(Number.MIN_VALUE);

As you can see, the value is 5e-324.


This is the smallest positive number that can be shown within float precision (float precision is relating to the 0.1 + 0.2 bug).

This is as close as you can get to 0.


The technical smallest value is Number.NEGATIVE_INFINITY.

console.log(Number.NEGATIVE_INFINITY);

However, this isn't really "numerical", as the value is -Infinity, which can't be represented with a clear number.

Number.MIN_VALUE: The smallest positive representable number—that is, the positive number closest to zero (without actually being zero).

When you run console.log(Number.MIN_VALUE);, you'll see the output as 5e-324.

And I might add, what you expect might be Number.MIN_SAFE_INTEGER or Number.NEGATIVE_INFINITY

See Number | Javascript Reference

Related