在Fortran中,对浮点文字使用科学表示法是非常容易的:
1.5d-10
将意味着双精度(无论在当前Fortran编译器设置下意味着什么)浮点值,它近似于1.5*10^-15。
然而,指数表示法和浮点类说明符的融合是一个问题。如果希望浮点文字具有C_DOUBLE类型,如何声明浮点文字?
我知道这是一个有点挑剔的问题,但在某些情况下,双精度将不会与C_DOUBLE相同。
发布于 2018-04-21 13:42:25
以下任何一种形式都可以指定真正的文字:
1.21.2e01.2d01.2_kind1.2e0_kind最后一个例子是使用一种说明符和指数。所以,专门针对这个问题:1.5e-15_C_DOUBLE。
当然,在某些情况下,1.5d-15与1.5e-15_C_DOUBLE不一样。双精度和real(C_DOUBLE)的类型分别是Fortran和配套C编译器的选择。
编译器允许通过编译器标志将单个和双精度的文字常量提升到更高的类型,因此不会接触real(C_DOUBLE)。
对于没有十进制部分的实值,还有其他可用的表单:
1.1e01.e01d01.d01.e0_kind1e0_kind也就是说,小数部分是可选的,如果给定指数,小数分隔符也是可选的。然而,请注意,1是一个整数文本,而1e0和类似的是真实的。
https://stackoverflow.com/questions/49956241
复制相似问题