'Why is the minimal value greater than zero? [duplicate]

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?



Solution 1:[1]

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.

Solution 2:[2]

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Arnav Thorat
Solution 2 namln-hust