What will be logged to the console?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
At a first glance, the answer is true
as 0.1 + 0.1 + 0.1
is obviously equal to 0.3
.
But thatβs only before we get into the details of how the numbers are represented in JavaScript.
If you try to execute the statement console.log(0.1 + 0.2)
in JS, youβll get a number 0.30000000000000004
.
This happens because in JavaScript and quite a few other programming languages some decimal numbers can't be represented exactly as they are.
For example 0.1
in binary will result in an endless fraction, the same way as 1/3
becomes 0.333(3)
in the decimal number system.
ANSWER: false
will be logged to the console.
Top comments (4)
It even gets more interesting with subtraction.
0.3 - 0.1
=0.19999999999999998
Absolutely! And the reason is the same.
Same should also happen in many languages implementing the IEEE 754, great question!
π