在Fortran中使用科学记数法表示浮点文字是很容易的:
1.5d-10
意味着双精度(在当前的Fortran编译器设置下意味着什么)浮点值近似1.5*10^-15
。
然而,指数表示法和浮点类型说明符的融合有点问题。当人们希望它具有C_DOUBLE
的类型时,如何声明这个浮点文字?
我知道这是一个挑剔的问题,但有时双精度与C_DOUBLE
不一样。
答案 0 :(得分:2)
可以通过以下任何形式指定真正的文字:
1.2
1.2e0
1.2d0
1.2_kind
1.2e0_kind
最后一个是使用种类说明符和指数的示例。因此,具体问题是:1.5e-15_C_DOUBLE
。
肯定会出现1.5d-15
与1.5e-15_C_DOUBLE
不同的情况。精度和real(C_DOUBLE)
的类型分别是Fortran和伴随C编译器的选择。
允许通过编译器标志将单精度和双精度文字常量提升为更高种类的编译器不会触及real(C_DOUBLE)
。