| 查看: 4643 | 回复: 14 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[求助]
Fortran计算10的十次方以上运算结果不正确,是精度问题吗? 已有1人参与
|
|||
| 最近用Fortran进行模拟计算,计算结果显示错误,往回找某一参数的计算结果发现为0.0000000E+000,后来检查式子发现有个10的12次方计算。然后我就另建新项目计算了10的几次方计算,发现10的9次方计算结果是1000000000正常,但是10的十次方计算结果就成了1410065408,11次方为1215752192,12次方就成了-727379968。一开始怀疑是精度问题,但是设置成精度为real(8),real(16)结果计算都是这样。求问大神是为什么? |
» 猜你喜欢
推荐一款可以AI辅助写作的Latex编辑器SmartLatexEditor,超级好用,AI润色,全免费
已经有20人回复
【EI|Scopus 双检索】第六届智能机器人系统国际会议(ISoIRS 2026)
已经有1人回复
物理学I论文润色/翻译怎么收费?
已经有224人回复
2026年第四届电动车与车辆工程国际会议(CEVVE 2026)
已经有0人回复
德国亥姆霍兹Hereon中心招收两位医用镁合金腐蚀与LPSO相变方向2026公派博士生
已经有0人回复
virtualzx
木虫 (著名写手)
- 应助: 263 (大学生)
- 金币: 7161.3
- 红花: 54
- 帖子: 1605
- 在线: 317.6小时
- 虫号: 2069080
- 注册: 2012-10-18
- 性别: GG
- 专业: 理论和计算化学
|
看了你的程序,问题在于每一个常数都有类型的,10**12这里10是整型(缺省整数是integer*4),这个类别只能达到10位。 取决于你需要的精度,如果你的程序需要完全精确的数值时才需要整数,整数没有任何误差,但能表示的大小范围很有限。你可以用10_8来指定10是8字节整数。 如果你不需要精确数值,而可以接受一定误差,那么就可以用浮点数。浮点数可以直接用科学计数法表示,比如10^15就是1D15 发自小木虫IOS客户端 |
11楼2016-01-25 11:15:31
suyi20466975
至尊木虫 (正式写手)
巾帼将军
- 应助: 6 (幼儿园)
- 金币: 10436.8
- 散金: 47
- 红花: 48
- 帖子: 703
- 在线: 129.5小时
- 虫号: 738293
- 注册: 2009-04-02
- 性别: MM
- 专业: 凝聚态物性 II :电子结构

2楼2016-01-24 17:18:53
virtualzx
木虫 (著名写手)
- 应助: 263 (大学生)
- 金币: 7161.3
- 红花: 54
- 帖子: 1605
- 在线: 317.6小时
- 虫号: 2069080
- 注册: 2012-10-18
- 性别: GG
- 专业: 理论和计算化学
|
你用的四字节整数,就只能到这个数量级。如果需要更多,可以告诉编译器使用八字节整数(ifort 的flag 是-i8),可以到二十位数。再多一般就没有使用精确数值的必要了,可以用浮点数近似代替 发自小木虫IOS客户端 |
3楼2016-01-24 17:56:09
4楼2016-01-24 20:57:00













回复此楼