24小时热门版块排行榜    

查看: 1364  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lqhcxx

铜虫 (职业作家)

[交流] 【求助】Fortran的计算结果 已有5人参与

program main
real(8):: a
a=0.4
write(*,*) a
end


上面的程序输出结果为0.400000005960464

这是为什么呢?误差吗?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

额,干了点活,回复得晚了。大家都回答了阿。:-)
7楼2010-11-01 17:54:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

snoopyzhao

至尊木虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
是的,误差,或者说这是浮点数的规则决定的……
2楼2010-11-01 09:21:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
program main
      real(8):: a
      a=0.4d0
      write (*,*) a
      end
3楼2010-11-01 17:04:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by lqhcxx at 2010-11-01 08:06:15:
program main
real(8):: a
a=0.4
write(*,*) a
end


上面的程序输出结果为0.400000005960464

这是为什么呢?误差吗?

a=0.4
a你定义的是双精度,却赋值了一个0.4单精度的值。
修改成 a=0.4d0就OK了。
4楼2010-11-01 17:07:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见