Skip to content

Commit 5049c60

Browse files
authored
Новый пример кода (из английской версии)
1 parent 192af3f commit 5049c60

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

1-js/05-data-types/02-number/article.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,12 @@ alert( 0.1 + 0.2 ); // 0.30000000000000004
215215

216216
Число хранится в памяти в бинарной форме, как последовательность бит - единиц и нулей. Но дроби, такие как `0.1`, `0.2`, которые выглядят довольно просто в десятичной системе счисления, на самом деле являются бесконечной дробью в двоичной форме.
217217

218+
```js run
219+
alert(0.1.toString(2)); // 0.0001100110011001100110011001100110011001100110011001101
220+
alert(0.2.toString(2)); // 0.001100110011001100110011001100110011001100110011001101
221+
alert((0.1 + 0.2).toString(2)); // 0.0100110011001100110011001100110011001100110011001101
222+
```
223+
218224
Другими словами, что такое `0.1`? Это единица делённая на десять — `1/10`, одна десятая. В десятичной системе счисления такие числа легко представимы, по сравнению с одной третьей: `1/3`, которая становится бесконечной дробью `0.33333(3)`.
219225

220226
Деление на `10` гарантированно хорошо работает в десятичной системе, но деление на `3` - нет. По той же причине и в двоичной системе счисления, деление на `2` обязательно сработает, а `1/10` становится бесконечной дробью.

0 commit comments

Comments
 (0)