17 lines
No EOL
368 B
Markdown
17 lines
No EOL
368 B
Markdown
That's because `i` would never equal `10`.
|
|
|
|
Run it to see the *real* values of `i`:
|
|
|
|
```js run
|
|
let i = 0;
|
|
while (i < 11) {
|
|
i += 0.2;
|
|
if (i > 9.8 && i < 10.2) alert( i );
|
|
}
|
|
```
|
|
|
|
None of them is exactly `10`.
|
|
|
|
Such things happen because of the precision losses when adding fractions like `0.2`.
|
|
|
|
Conclusion: evade equality checks when working with decimal fractions. |