| 查看: 4962 | 回复: 14 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[求助]
Fortran计算10的十次方以上运算结果不正确,是精度问题吗? 已有1人参与
|
|||
| 最近用Fortran进行模拟计算,计算结果显示错误,往回找某一参数的计算结果发现为0.0000000E+000,后来检查式子发现有个10的12次方计算。然后我就另建新项目计算了10的几次方计算,发现10的9次方计算结果是1000000000正常,但是10的十次方计算结果就成了1410065408,11次方为1215752192,12次方就成了-727379968。一开始怀疑是精度问题,但是设置成精度为real(8),real(16)结果计算都是这样。求问大神是为什么? |
» 猜你喜欢
如何从铁电相到顺电相。
已经有1人回复
各位大佬,求一份最新Wien2k版本作为学习用途
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有141人回复
南科大活性流体和软物质课题组诚招2027级博士、硕士研究生和博后
已经有42人回复
瑞典林雪平大学博士后招聘|PEC Water Splitting 方向
已经有24人回复
PRB投稿,Acknowledgment sent to author状态十天了
已经有3人回复
PVA溶解
已经有2人回复
基金申请
已经有44人回复
CSC与新西兰维多利亚大学PhD奖学金项目
已经有0人回复
新西兰Robinson研究所 招聘CSC公派访问人员
已经有0人回复
帮我的英语口语老师找学生
已经有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










回复此楼
100