爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3760|回复: 4

[求助] fortran语言中实型数据转成整型数据,导致数据发生变化的问题

[复制链接]

新浪微博达人勋

发表于 2013-9-1 15:59:14 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
我的程序如下:
实型常量13062008.020乘以1000得到整数dname 然后print*,dname 会出现奇怪的数字
是不是由于数据长度超出了规定的长度导致的错误呢
program main
implicit none
!定义变量
real:: var1(361,281)
character(len=60) :: b
character(len=17) :: c
character(len=118) :: d
character aa*2 !变量
character filename*32 !变量
real::varr1,varr2,varr3,varr4,varr5,varr6,varr7
integer i,j,dname4
integer dname
real dname5 !日期
character dname1*11 ,dname2*8,dname3*3
aa='2d'
dname=13062008.020*1000
print*,dname
write(dname1,'(i11)')dname
dname2=dname1(1:8)
dname3=dname1(9:11)
filename='Z:\ecmwf_thin\'//aa//'\999\'//dname2//'.'//dname3
print*,dname2
print*,dname3
print*,trim(filename)
end

QQ图片20130901155711.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-1 16:28:44 | 显示全部楼层
是的, 浮点数溢出~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-1 20:11:10 | 显示全部楼层
整型数据溢出了~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-2 09:08:24 | 显示全部楼层
write(dname1,'(i11)') dname 中的i11改成 i11.11试试?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-9-2 15:14:16 | 显示全部楼层

问题解决了 ,造成这个错误的原因是整数部分数据特别大,小数部分则比较小,处理过程中容易出问题,我的解决办法是将整数和小数部分分开来处理
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表