作者BanPeeBan (踢屁屁)
看板Fortran
標題[問題] int計算後變成float?
時間Thu Mar 21 21:10:32 2019
寫個簡單的int四則運算 結果竟變成float
附上程式碼 請各位解惑 如何自行設定字元數並輸出int
--------------------程式碼--------------------
program cal_int
integer::count1,count2
integer::cost1,cost2,cost
integer::earn1,earn2,earn
count1=1
count2=1
cost1=400
earn1=50
cost2=40
earn2=5
cost=count1*cost1+count2*cost2
earn=count1*earn1+count2*earn2
write(*,*)cost,earn
write(*,'(2i11)')cost,earn
write(*,'(2f11.11)')cost,earn
end program
----------------------------------------------
!結果第一行
! 440 55 (輸出兩個整數,空白字元數量僅示意用)
!結果第二行
! 1234567890 1234567890 (輸出兩個i10亂碼,各占11個字元)
!結果第三行
! 440. 55. (輸出兩個浮點數)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.110.62.239
※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1553173835.A.A21.html
→ rex0707: 2f11.11的f吧... 03/21 21:49
抱歉 沒說清楚
想用int的模式輸出 並自行設定字元數
※ 編輯: BanPeeBan (123.110.62.239), 03/21/2019 21:55:07
→ alen84204: write(*,'(2f11.11)') 03/22 10:45
→ fragmentwing: FW.D代表以11個字元寬度輸出浮點數(w) 04/14 15:01
→ fragmentwing: 以11個字元寬度輸出小數部分(d) 04/14 15:02
→ fragmentwing: 然後你還要考量到有個小數點 04/14 15:02
→ fragmentwing: 那爆炸是理所當然的啦 04/14 15:02
→ fragmentwing: 你連小數點的空間都沒給他喔 04/14 15:03
→ fragmentwing: 你跑的結果超詭異 REX0707那個結果才正常 04/14 15:04
→ fragmentwing: 該不會是沒放STOP所以一直跑的問題? 04/14 15:10
→ fragmentwing: 雖然rex0707也沒放 可是會不會是編譯器的差異? 04/14 15:10
→ rex0707: 我沒加STOP是因為我是直接複製貼上原PO的程式碼喔 04/14 16:35
→ rex0707: 我只是想表達一樣的CODE在我這邊是沒問題的 04/14 16:35
→ fragmentwing: 我知道 所以我才在猜會不會是編譯器的差異 04/14 17:10