Мне было интересно, как JavaScript обрабатывает числа с плавающей запятой.
Т.е. предположим, я установил 5 переменных (без десятичных чисел):
var a = 1/2, b = 1/3, c = 1/12, d = 1/12, e = 0;
Гарантированно ли их сумма равна 1?
Прилагаемый ответ не отвечает на мой вопрос, я хочу различать объявление переменных десятичного числа с их определением, как указано выше (0,5 против 1/2)
также см. Математика с плавающей запятой не работает?, это не просто проблемы с JS, это касается того, как компьютеры работают с точностью
Хорошая работа, я не сказал "возможный дубликат ...", разве не @EricPostpischil



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нет, не гарантируется, что сумма будет равной единице.
Операции с плавающей запятой производят приближения к реальной арифметике. В двоичных числах с плавающей запятой 1/2 будет точным, но 1/3 и 1/12 будут аппроксимированы, и добавление значений может привести к дальнейшим приближениям. Ошибки округления в каждой операции фактически случайны, поэтому нет гарантии, что они будут отменены и произведут ровно единицу. (То есть в общем; они могут или не могут создать один для конкретной задачи 1/2 + 1/3 + 1/12 + 1/12, и в этом случае они должны делать это надежно, когда одни и те же операции повторяются в одном и том же порядок. Но для подобных проблем, как правило, нет гарантии.)
Возможный дубликат Как работать с точностью чисел с плавающей запятой в JavaScript?