Поэтому бесполезно отлавливать эти исключения с плавающей запятой. Даже недостаток спорен. Я бы не стал ловить его по умолчанию, но я вижу его полезность.
аюсь прочитать значение с плавающей точкой из входного файла вFortran
.
Для этого я использую этот код:
...
INTEGER :: nf
REAL :: re
OPEN(newunit=nf, file='toto.txt')
READ(unit=nf, fmt=*) re
...
с toto.txt текстовый файл, содержащий мое реальное значение:
10.1001 ! this value is supposed to be read by the Fortran program
Если я скомпилирую и выполню так, все будет хорошо.
Но у меня возникают проблемы при компиляции и выполнении сfpe
вариант. У меня есть ошибка в строке чтения, которая выглядит следующим образом:
Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation
Backtrace for this error
#0 0xfffffff
#1 0xfffffff
...
Я используюgfortran
команда:gfortran -g1 -c -fbacktrace -ffpe-trap=invalid,zero,overflow,underflow,inexact,denormal -Wall -fcheck=all my_prog.f90
Я предполагаю, что мое действие чтения не является правильным. Так это ошибка нормально? Есть ли правильный способ прочитать реальные значения?