鍍金池/ 教程/ Java/ Fortran數(shù)字
Fortran還原功能
Fortran關(guān)系運(yùn)算符
Fortran運(yùn)算符優(yōu)先級
Fortran基本語法
Fortran文件輸入輸出
Fortran嵌套select case結(jié)構(gòu)
Fortran變量
Fortran Cycle語句
Fortran語言環(huán)境設(shè)置
Fortran數(shù)據(jù)類型
Fortran數(shù)組
Fortran字符
Fortran if...else if...else 語句
Fortran調(diào)試程序
Fortran編程風(fēng)格
Fortran if...then語句結(jié)構(gòu)
Fortran嵌套循環(huán)
Fortran常量
Fortran循環(huán)
Fortran導(dǎo)出數(shù)據(jù)類型
Fortran字符串
Fortran操作函數(shù)
Fortran do...while循環(huán)結(jié)構(gòu)
Fortran內(nèi)部函數(shù)
Fortran數(shù)字精度
Fortran選擇決策
Fortran重塑函數(shù)
Fortran運(yùn)算符
Fortran構(gòu)造函數(shù)
Fortran模塊
Fortran位置函數(shù)
Fortran數(shù)字
Fortran指針
Fortran算術(shù)運(yùn)算符
Fortran exit語句
Fortran動態(tài)數(shù)組
Fortran嵌套if結(jié)構(gòu)
Fortran select case結(jié)構(gòu)
Fortran向量和矩陣乘法函數(shù)
Fortran邏輯運(yùn)算符
Fortran if...then...else 結(jié)構(gòu)
Fortran教程
Fortran過程
Fortran Stop語句
Fortran基本輸入輸出
Fortran do循環(huán)結(jié)構(gòu)
Fortran查詢函數(shù)

Fortran數(shù)字

Fortran的數(shù)字由三個內(nèi)部數(shù)據(jù)類型來表示:

  • 整型
  • 實(shí)型
  • 復(fù)雜類型

整型

整數(shù)類型只能容納整數(shù)值。下面的例子中提取的是持有一個通常的4字節(jié)整數(shù)的最大值:

program testingInt
implicit none

   integer :: largeval
   print *, huge(largeval)
   
end program testingInt

當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:

2147483647

請注意,huge()函數(shù)給出能夠由特定的整數(shù)數(shù)據(jù)類型可以保持的最大數(shù)字。還可以指定使用的那種符的字節(jié)數(shù)。下面的例子說明了這一點(diǎn):

program testingInt
implicit none

   !two byte integer
   integer(kind=2) :: shortval
   
   !four byte integer
   integer(kind=4) :: longval
   
   !eight byte integer
   integer(kind=8) :: verylongval
   
   !sixteen byte integer
   integer(kind=16) :: veryverylongval
   
   !default integer 
   integer :: defval
        
   print *, huge(shortval)
   print *, huge(longval)
   print *, huge(verylongval)
   print *, huge(veryverylongval)
   print *, huge(defval)
   
end program testingInt

當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:

32767
2147483647
9223372036854775807
170141183460469231731687303715884105727
2147483647

實(shí)型

它存儲的浮點(diǎn)數(shù),例如 2.0,3.1415,-100.876等

傳統(tǒng)上有兩種不同類型的實(shí)型:缺省的實(shí)型和雙精度型。

然而,F(xiàn)ortran 90/95提供了更多的控制權(quán)實(shí)數(shù)和整數(shù)數(shù)據(jù)類型,通過一種說明,我們將在較短期內(nèi)學(xué)習(xí)研究精度。

下面的例子展示了如何使用實(shí)型的數(shù)據(jù)類型:

program division   
implicit none

   ! Define real variables   
   real :: p, q, realRes 
   
   ! Define integer variables  
   integer :: i, j, intRes  
   
   ! Assigning  values   
   p = 2.0 
   q = 3.0    
   i = 2 
   j = 3  
   
   ! floating point division
   realRes = p/q  
   intRes = i/j
   
   print *, realRes
   print *, intRes
   
end program division  

當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:

0.666666687    
0

復(fù)雜類型

這被用于存儲復(fù)數(shù)。一個復(fù)雜的數(shù)字有兩部分:實(shí)部和虛部。兩個連續(xù)的數(shù)字存儲單元存儲兩個部分。

例如,該復(fù)數(shù)(3.0,-5.0)等于3.0 - 5.0i

通用函數(shù)cmplx() 創(chuàng)建一個復(fù)數(shù)。它產(chǎn)生的結(jié)果是實(shí)部和虛部,不論輸入?yún)?shù)的類型的單精度。

program createComplex
implicit none

   integer :: i = 10
   real :: x = 5.17
   print *, cmplx(i, x)
   
end program createComplex

當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:

(10.0000000, 5.17000008)

下面的程序演示的復(fù)雜數(shù)字運(yùn)算:

program ComplexArithmatic
implicit none

   complex, parameter :: i = (0, 1)   ! sqrt(-1)   
   complex :: x, y, z 
   
   x = (7, 8); 
   y = (5, -7)   
   write(*,*) i * x * y
   
   z = x + y
   print *, "z = x + y = ", z
   
   z = x - y
   print *, "z = x - y = ", z 
   
   z = x * y
   print *, "z = x * y = ", z 
   
   z = x / y
   print *, "z = x / y = ", z 
   
end program ComplexArithmatic

當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:

(9.00000000, 91.0000000)
z = x + y = (12.0000000, 1.00000000)
z = x - y = (2.00000000, 15.0000000)
z = x * y = (91.0000000, -9.00000000)
z = x / y = (-0.283783793, 1.20270276)

范圍,精度和數(shù)字的大小

整數(shù)的范圍內(nèi),精度和浮點(diǎn)數(shù)的大小取決于分配給該特定數(shù)據(jù)類型的比特數(shù)。

下表顯示的位數(shù)和范圍的整數(shù):