Precisão aritmética com dobras no Matlab

Estou com problemas para entender como a precisão dessas dobras afeta o resultado das operações aritméticas no Matlab. Eu pensei que, como os dois a & b são duplos, eles seriam capazes de realizar operações com essa precisão. Sei que pode haver um erro de arredondamento, mas como esses números estão bem dentro da representação numérica de 64 bits, não achei que fosse um problema.

a = 1.22e-45
b = 1
a == 0
   ans = 0  %a is not equal to zero
(a + b) == 1
   ans = 1

Como é que ele é capaz de levar precisão suficiente para reconhecer a! = 0, mas quando adicionado a 1, não mostra nenhuma alteração.

questionAnswers(3)

yourAnswerToTheQuestion