找回密码
 注册
Simdroid-非首页
查看: 125|回复: 3

[3. Fortran] 关于FORTRAN精度的问题

[复制链接]
发表于 2006-11-3 03:49:38 | 显示全部楼层 |阅读模式 来自 同济大学
我在FORTRAN编程的过程中,有下面一段代码:

        先是在module里面定义如下:
          real(kind = 4) :: rkind = 8
          real(rkind) :: B = 0.6
        然后再主函数中debug 调试时,显示的B的值是:0.600000023841858

如果将module 里面改成:
           real(rkind),parameter :: B = 0.6
或者:real(rkind) :: B = 0.6d0
           则在主函数中debug 调试时,显示的B的值是:0.600000000000000



这到底是为什么?
发表于 2006-11-13 17:03:07 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
0.6是单精度常数
0.6D0是双精度常数
发表于 2006-11-17 02:19:55 | 显示全部楼层 来自 美国
integer(kind=4) :: rkind=8
is correct
发表于 2006-11-18 04:52:25 | 显示全部楼层 来自 德国
rkind 首先被你定义成了浮点数,6-->6.0
怎么还能拿来定义呢?  real(6.0)是错误的

第二个没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 19:29 , Processed in 0.027900 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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