0

我在 FORTRAN 77 中有以下代码:

REAL*8 :: dm

dm=1.-1.E-12

write(6,*) 'dm: ', dm

我得到:dm: 1

这个可以吗?我想得到dm=0.999999999999

4

1 回答 1

3

如评论中所述,您需要指定常量的精度。而且,real*8已经过时了。(它总是扩展吗?)这是一种现代的编写方式,使用 ISO Fortran 环境获取 64 位实数类型,并在声明和常量中使用该类型。

use ISO_FORTRAN_ENV

real (real64) :: dm  
dm = 1.0_real64 - 1.0E-12_real64

有关详细信息,请参阅`real*8` 是什么意思?

于 2013-06-08T07:55:22.963 回答