Fortran Coder

查看: 3092|回复: 2
打印 上一主题 下一主题

[求助] Fortran 怎样输出准确数值

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
10 元
贡献
4 点
跳转到指定楼层
楼主
发表于 2021-12-7 18:01:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!
我正在用Fortran 分析一个差分方程 $x_{n+1} = 4.0 * x_n * (1.0 - x_n)$ (Logistic 映射)。
由于此方程对于x 的初值的输入十分敏感,即初值x = 0.1或 x = 0.1000001得到的结果完全不同。
我用 f90 定义了
Real(Kind = 8) :: x = 0.1
Write(*,*) "x1 = ", x1
我得到
x1 = 0.10000000149011612
我想问问,Fortran 在计算中对于x1的取值是0.1还是0.10000000149011612?
有什么办法可以令x1的取值为0.1而不是0.10000000149011612?
谢谢!
分享到:  微信微信
收藏收藏1 点赞点赞 点踩点踩

166

帖子

2

主题

1

精华

大师

Vim

F 币
1005 元
贡献
482 点

规矩勋章

沙发
发表于 2021-12-7 18:49:53 | 只看该作者
常数默认是单精度类型,双精度的0.1需要使用 0.1d0

2015

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1574 元
贡献
676 点

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

板凳
发表于 2021-12-7 19:48:43 | 只看该作者
Real(Kind = 8) :: x = 0.1_8
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-15 07:06

Powered by Tencent X3.4

© 2013-2024 Tencent

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