作者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://webptt.com/cn.aspx?n=bbs/Fortran/M.1553173835.A.A21.html
1F:→ rex0707: 2f11.11的f吧... 03/21 21:49
抱歉 没说清楚
想用int的模式输出 并自行设定字元数
※ 编辑: BanPeeBan (123.110.62.239), 03/21/2019 21:55:07
2F:→ alen84204: write(*,'(2f11.11)') 03/22 10:45
4F:→ fragmentwing: FW.D代表以11个字元宽度输出浮点数(w) 04/14 15:01
5F:→ fragmentwing: 以11个字元宽度输出小数部分(d) 04/14 15:02
6F:→ fragmentwing: 然後你还要考量到有个小数点 04/14 15:02
7F:→ fragmentwing: 那爆炸是理所当然的啦 04/14 15:02
8F:→ fragmentwing: 你连小数点的空间都没给他喔 04/14 15:03
9F:→ fragmentwing: 你跑的结果超诡异 REX0707那个结果才正常 04/14 15:04
10F:→ fragmentwing: 该不会是没放STOP所以一直跑的问题? 04/14 15:10
11F:→ fragmentwing: 虽然rex0707也没放 可是会不会是编译器的差异? 04/14 15:10
12F:→ rex0707: 我没加STOP是因为我是直接复制贴上原PO的程式码喔 04/14 16:35
13F:→ rex0707: 我只是想表达一样的CODE在我这边是没问题的 04/14 16:35
14F:→ fragmentwing: 我知道 所以我才在猜会不会是编译器的差异 04/14 17:10