Re: [問題] 有關最大位數及其精度
implicit none
上面的這行指令的意思是,每一個變數
在使用之前都要事先宣告。
底下有對照,你的程式 A1D4,
要改成
A1*1.0D4
你再試試看
program VF1055
implicit none
REAL*8 N,NI,A1,A2
N=0.9988
NI=0.8777
A1=N/NI
! A2=-11.033*A1D4 +83.507*A1D3 -246.59*A1D2 +348.69*A1-281.23
A2=-11.033*A1*1.0D4+83.507*A1*1.0D3-246.59*A1*1.0D2+348.69*A1-281.23
WRITE(*,*) A1,' ',A2
end program VF1055
!
-----------------------------------------------------------------------------
!dec$if (.false.)
1.13797426508089 -58469.6160667529
Hello World at 10:57
Press any key to continue
!
-----------------------------------------------------------------------------
--------------------Configuration: VF1055 - Win32 Debug--------------------
Compiling Fortran...
D:\VF1055\VF1055.f90
D:\VF1055\VF1055.f90(26) : Error: This name does not have a type, and must
have an explicit type. [A1D4]
A2=-11.033*A1D4+83.507*A1D3-246.59*A1D2+348.69*A1-281.23
-----------------^
D:\VF1055\VF1055.f90(26) : Error: This name does not have a type, and must
have an explicit type. [A1D3]
A2=-11.033*A1D4+83.507*A1D3-246.59*A1D2+348.69*A1-281.23
-----------------------------^
D:\VF1055\VF1055.f90(26) : Error: This name does not have a type, and must
have an explicit type. [A1D2]
A2=-11.033*A1D4+83.507*A1D3-246.59*A1D2+348.69*A1-281.23
-----------------------------------------^
Error executing df.exe.
VF1055.exe - 3 error(s), 0 warning(s)
!dec$endif
※ 引述《randomno (隨便)》之銘言:
: 請問各位先進
: PROGRAM CAL
: REAL*8 N,NI,A1,A2
: N=0.9988
: NI=0.8777
: A1=N/NI
: A2=-11.033*A1D4+83.507*A1D3-246.59*A1D2+348.69*A1-281.23
: WRITE(*,*) A1,' ',A2
: STOP
: END
: 這是程式簡化出來的一部份
: 有關A2的運算
: 經過程式計算出來的值是115.570237291540
: 但是用計算機算出來的值是-99.20147809
: 請問這個問題是跟精度有關嗎?
: 我該如何解決這個問題?
--
e-mail: sjgau4311@gmail.com
我的課程介紹網頁:
http://www.csie.ntu.edu.tw/train/teacher_display.php?num=18
AutoCAD 台灣地區菁英講師獲選
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.20.191.193
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
0
4
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章