Fortran Coder

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

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

[复制链接]

7

帖子

3

主题

0

精华

入门

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

程序运行后的输出如下:

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

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

146

帖子

42

主题

1

精华

宗师

F 币
1273 元
贡献
629 点
沙发
发表于 2022-1-19 01:08:10 | 只看该作者
浮点数默认为单精度
改成这样就好了
a=4.0d0/9或者a=4.0_8/9

评分

参与人数 1F 币 +3 收起 理由
fcode + 3

查看全部评分

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2022-1-19 08:05:35 | 只看该作者
gfortran -fdefault-real-8 example1.f90  这样也可以的

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 点
5#
 楼主| 发表于 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-23 16:46

Powered by Tencent X3.4

© 2013-2024 Tencent

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