Потратив часы на то, чтобы выяснить ошибку в моей личной бухгалтерской таблице, я смог закрепить ее до одной формулы.
Пока это приводит к нулю
=((0,6-0,3-0,4)+(-0,3+0,8-0,4))
сравнение с нулем дает мне ложь
=((0,6-0,3-0,4)+(-0,3+0,8-0,4))=0
Какого черта я пропускаю?
google-sheets
Брюно
источник
источник
0 != 0
.Ответы:
Благодаря чудесам арифметики с плавающей точкой ,
оценивается примерно в -5,55e-17 с двойной точностью. Это относится как к JavaScript, так и к таблицам Google. На самом деле не имеет значения, являются ли вычисления на стороне клиента или на стороне сервера: важен используемый числовой формат. Похоже, что Google Sheets использует двойную точность .
Решение одно и то же: избегайте сравнения равенства для чисел с плавающей запятой. В вашем случае, изменение единиц путем умножения всего на 10 позволит избежать проблемы.
источник
=FLOOR(B3+C2, 0.01)
для работы с валютой