Проверка равенства чисел с плавающей точкой
Я использую 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
(правда). В чем здесь проблема?