[Fortran] Неправильный результат функции [Решено] Есть функция: Code: function fun1(t) fun1 = exp(t) * ( 1.1 - sqrt(1.21 - exp(-t)) ) end и программа: Code: program tsfs2p16 data ninp / 5 /, nres / 6 / open(unit=ninp, file='testfun.inp') open(unit=nres, file='result') read(ninp,101) n read(ninp,100) t0, tn write(nres, *) '# t0=',t0,' tn=',tn,' n=',n ht=(tn-t0)/n write(nres,1100) do i=0,n t=t0+i*ht r0=fun1(t) write(nres,1001) i, t, r0 enddo close(nres) 100 format(f15.7) 101 format(i15) 1100 format(1x,' #',2x,'i',12x,'t',12x,'fun1') 1001 format(1x,i5,2x,2x,f15.7,f15.7,f15.7) end При вводе n=8, t0 = 1.2, tn = 16 результат правильный При вводе n=8, t0 = 12, tn = 16 идёт не правильный результат (правильный определялся через вольфрам альфа) Почему становится не правильный результат и как это лечить? PS: Эту же прогу писал на C/C++ всё решилось заменой типа констант (1.1f -> 1.1 and 1.21f -> 1.21) PSS: Всё компилится под ubuntu с помощью gfortran Ответ: Надо заменить константы на 1.1 -> 1.1D+0 and 1.21 -> 1.21D+0