I Shar

I Shar

мир глазами веб-разработчика

JavaScript: 0.1 + 0.1 + 0.1 === 0.3

какой результат даст сложение некоторых десятичных чисел в JavaScript

I Shar

время чтения 1 мин.

Photo by  Charlie Wollborg on Unsplash

Итак, будет ли результат сравнения 0.1 + 0.1 + 0.1 === 0.3 истиной?

На первый взгляд ответ очевиден, конечно true, так как сумма чисел с правой стороны нашего сравнения 0.1 + 0.1 +0.1 равняется 0.3.

Но все ли так просто? Давайте подумаем, как именно десятичные числа представлены в JavaScript.

Попробуем получить результат сложения 0.1 + 0.1 + 0.1 в консоли:

console.log(0.1 + 0.1 + 0.1);
// результат сложения 0.30000000000000004

Такой результат обусловлен тем, что в JavaScript, как и в некоторых других языках программирования, существуют особенности внутреннего представления чисел с плавающей запятой.

Например 0.1 в двоичном формате становится бесконечной дробью, подобно тому как 1/3 в десятичной системе счисления превращается в 0.333(3)

Именно по этой причине сравнение 0.1 + 0.1 + 0.1 === 0.3 в JavaScript является ложью и вернет false


Спасибо за внимание

    • frontend
    • js

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.