На новом листе (я использую Excel 2013), начиная с верхнего левого угла, я набираю:
=18.6 + 67.2 | =A1-85.8 = 0 | =(A1-85.8) * 1000000000000
ожидание
85.8 | TRUE | 0
Фактический результат
85.8 | FALSE | 0.014210855
Я хорошо знаю, что числа с плавающей запятой могут вести себя так, но я все еще удивлен, что это происходит с такими простыми операциями над числами, каждое из которых имеет небольшое количество значащих цифр и схожие порядки величин.
Может кто-нибудь объяснить, почему это происходит и почему это происходит только с некоторыми парами значений (и всегда не целыми числами)?
Число строк, заполненных так (и повторное использование F9):
=RANDBETWEEN(10, 1000)/10 | =RANDBETWEEN(10, 1000)/10 | =A1 + B1 | =C1-ROUND(C1,1)=0 | =(C1-ROUND(C1,1)) * 1000000000000
помогает продемонстрировать очевидную случайную природу этого явления.
