Почему 0.3 != 0.1+0.2 на javascript?

Пользователь

от magali , в категории: JavaScript , 2 месяца назад

Почему 0.3 != 0.1+0.2 на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от stanford_mosciski , 2 месяца назад

@magali 

Это происходит из-за способа представления чисел с плавающей запятой в JavaScript. В языке JavaScript числа хранятся в виде чисел с плавающей запятой двоичной системы счисления (точнее, в формате двоичной плавающей запятой IEEE 754).


Однако, некоторые числа, которые имеют конечные десятичные представления, могут иметь бесконечные двоичные представления. Это сочетается с округлением погрешности. В результате, при сложении чисел с плавающей запятой, как в данном случае 0.1 и 0.2, могут возникать небольшие погрешности в результате округления.


При сравнении 0.3 с суммой 0.1 и 0.2, представление чисел с плавающей запятой создает разницу в представлении чисел, что приводит к неравенству. Это связано с тем, что точность чисел с плавающей запятой ограничена, и округление погрешности может приводить к ошибкам, особенно при выполнении арифметических операций.