Проверка равенства чисел с плавающей точкой

Я использую gfortran в MinGW под Windows 7 (32bit) для компиляции кода на Fortran. Вот минимальный код, содержащийся в файлеtestequal.f:

      program testequal
      real*8 a1, a2

      a1 = 0.3d0
      a2 = 0.7d0

      write(*,*) 1.d0
      write(*,*) a1+a2
      write(*,*) a1+a2.eq.1.0
      write(*,*) a1+a2.eq.1.d0
      end

Составлено с

gfortran testequal.f -std=legacy

выход:

1.0000000000000000
1.0000000000000000
F
F

Но я ожидаю, что два логических значения будут обаT (правда). В чем здесь проблема?

Ответы на вопрос(3)

Ваш ответ на вопрос