Precisión aritmética con dobles en Matlab

Tengo algunos problemas para entender cómo la precisión de estos dobles afecta el resultado de las operaciones aritméticas en Matlab. Pensé que, dado que tanto a & b son dobles, podrían realizar operaciones con esa precisión. Me doy cuenta de que puede haber un error de redondeo, pero dado que estos números están bien dentro de la representación de números de 64 bits, no pensé que sería un problema.

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

¿Cómo es que puede llevar suficiente precisión para reconocer a! = 0 pero cuando se agrega a 1 no muestra ningún cambio.

Respuestas a la pregunta(3)

Su respuesta a la pregunta