Fortran Coder

查看: 6936|回复: 4
打印 上一主题 下一主题

[数值问题] Fortran 双精度浮点数的精度不高,怎么回事?

[复制链接]

7

帖子

3

主题

0

精华

入门

F 币
44 元
贡献
26 点
跳转到指定楼层
楼主
发表于 2022-1-18 20:50:54 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本人打算用Fortran做一些数值计算,由于要多次用到三角函数,而且处理的数字都不大,所以对数字的精度有比较高的要求。我测试了一下Fortran 双精度浮点数的精度,发现它只能精确显示到小数点后8位啊,有图如下:

程序运行后的输出如下:

而用C语言编的程序,输出如下:

从这两个程序的输出来看,Fortran浮点数的精度比不上C啊。不知道是我编写的问题,还是Fortran自身的问题,有大佬可以指教下吗? 谢谢了!
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

7

帖子

3

主题

0

精华

入门

F 币
44 元
贡献
26 点
沙发
 楼主| 发表于 2022-1-19 09:06:07 | 显示全部楼层
weixing1531 发表于 2022-1-19 01:08
浮点数默认为单精度
改成这样就好了
a=4.0d0/9或者a=4.0_8/9

谢谢 大佬!

7

帖子

3

主题

0

精华

入门

F 币
44 元
贡献
26 点
板凳
 楼主| 发表于 2022-1-19 09:30:35 | 显示全部楼层
fcode 发表于 2022-1-19 08:05
gfortran -fdefault-real-8 example1.f90  这样也可以的

谢谢 大佬!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-1 07:10

Powered by Tencent X3.4

© 2013-2024 Tencent

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