When I try to compare two numbers using JavaScript Number()
function, it returns false
value for equal numbers. However, the grater-than(">") and less-than("<") operations return true
.
var fn = 20;
var sn = 20;
alert(new Number(fn) === new Number(sn));
This alert returns a false
value. Why is this not returns true
?
Javascript Equals Operators The non-strict equals operator (==) determines if two values are effectively equal regardless of their data type. The strict equals operator (===) determines if two values are exactly the same in both data type and value.
The main difference between the == and === operator in javascript is that the == operator does the type conversion of the operands before comparison, whereas the === operator compares the values as well as the data types of the operands.
The strict equality operator ( === ) checks whether its two operands are equal, returning a Boolean result. Unlike the equality operator, the strict equality operator always considers operands of different types to be different.
This means you can test to see if your functions are exactly the same, including what spaces and newlines you put in it. But first you have to eliminate the difference in their names. function foo1() { return 1; } function foo2() { return 1; } //Get a string of the function declaration exactly as it was written.
new Number()
will returnobject
notNumber
and you can not compare objects like this.alert({}==={});
will returnfalse
too.
Remove new
as you do not need to create new instance of Number
to compare values.
Try this:
var fn = 20;
var sn = 20;
alert(Number(fn) === Number(sn));
If you are using floating numbers and if they are computed ones. Below will be a slightly more reliable way.
console.log(Number(0.1 + 0.2) == Number(0.3)); // This will return false.
To reliably/almost reliably do this you can use something like this.
const areTheNumbersAlmostEqual = (num1, num2) => {
return Math.abs( num1 - num2 ) < Number.EPSILON;
}
console.log(areTheNumbersAlmostEqual(0.1 + 0.2, 0.3));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With