dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

>> Fortran语言开发经验交流
搜一搜更多此类问题 
Fortran中文网Fortran中文网—Fortran语言经验交流Fortran语言开发经验交流 → 双精度后D0的也会引起误差(D0重要性)

您是本帖的第 3799 个阅读者
树形 打印
标题:
双精度后D0的也会引起误差(D0重要性)
wangli8009
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:55
积分:591
门派:无门无派
注册:2012年1月15日
楼主
 用支付宝给wangli8009付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给wangli8009

发贴心情
双精度后D0的也会引起误差(D0重要性)
双精度后D0的也会引起误差(D0重要性)
点击浏览该文件
在大型复杂工程应用程序中,有大量变量需要赋值,很多人很随意的赋值。甚者说“双精度变量只要声明了,赋值有没有d0不会影响计算结果!”。对一些计算精度要求不高的,没什么大的问题,但对于一些计算精度要求高的,这时如果不引起注意,可能会出现计算结果不对。例如下面一段FORTRAN程序,本来程序中两个数组定义一致,赋值大小也一致,但由于赋值时d0 (f赋值缺少d0,f1有d0)存在与否会引起误差(图)。
高手指点为什么?
program test_real8_d0
  implicit none
  real(8),dimension(5) ::f,f1,ferror
  integer ::i
  open(6,file='dat.d11')  
  !f
  f(1)=0.1
  f(2)=0.2
  f(3)=0.1
  f(4)=0.3
  f(5)=0.2
  !f1
  f1(1)=0.1d0
  f1(2)=0.2d0
  f1(3)=0.1d0
  f1(4)=0.3d0
  f1(5)=0.2d0
  do i=1,5
    ferror(i)=f1(i)-f(i)
       write(6,*) i, ferror(i)
  enddo
  stop
end program test_real8_d0



图 双精度中缺少D0引起的误差
[此贴子已经被作者于2012-1-17 19:14:11编辑过]

石间野草
ip地址已设置保密
2012/1/17 6:37:12
wangli8009
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:55
积分:591
门派:无门无派
注册:2012年1月15日
2
 用支付宝给wangli8009付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给wangli8009

发贴心情
养成良好的编程习惯
编程规范很重要!上述就是一个编程规范问题

石间野草
ip地址已设置保密
2012/4/17 4:56:04

 2   2   1/1页      1    
网上贸易 创造奇迹! 阿里巴巴 Alibaba
Powered By Dvbbs Version 7.1.0 Sp1
Copyright ©2005 - 2008 www.fortran.cn
页面执行时间 0.60156 秒, 5 次数据查询
京ICP备05056801号