什么是“真正的* 8”是什么意思?什么是“真正的* 8”是什么意思?(What does “real

2019-05-13 23:32发布

写在Fortran 90的一个程序的手册说,“所有的实变量和参数在64位精度规定的(即, real*8 )”。

根据维基百科 ,单精度对应于32位精度,而双精度对应于64位的精度,所以显然是程序使用双精度。

但什么是real*8是什么意思?

我认为8意味着8位按照小数点。 不过, 维基百科似乎是说,单精度通常为6-9个数字,而双精度通常为15-17个数字。 这是否意味着语句“64位精度”是不一致的real*8

Answer 1:

8指的是数据类型使用的字节数。

因此,一个32位整数是integer*4沿着相同的路线。

快速搜索发现此指导Fortran的数据类型 ,其中包括:

“真正的* 4”语句指定的变量名是具有准确性的7位和10从-38到+38的大小范围的单精度4字节的实数。 “真正”的说法是一样的,在几乎所有的32位计算机“真正的* 4”的声明。

“真正的* 8”语句指定的变量名是具有15位精度的和10次从-308至+ 308的幅度范围内的双精度8字节实数。 “双精度”声明是一样的,在几乎所有的32位计算机“真正的* 8”的声明。



Answer 2:

现在有至少4种方式中的Fortran指定的精度。

前面已经回答了, real*8指定的字节数。 这是有点过时,但应该是安全的。

新的方法是用“种”。 每个人都应该使用固有的功能得到具有你所需要的精度的那种。 因为不同的编译器使用不同的值指定的那种按特定的数值是有风险的。

另一种方法是使用指定的类型ISO_C_BINDING的。 这个问题讨论了一种系统,用于整数-它是实数非常相似。



Answer 3:

的星形符号(如TYPE*n被调用)是如果与使用非标准的Fortran构建TYPE比其他CHARACTER

如果施加到字符类型,它创建的阵列n字符(或一串n字符)。

如果施加到另一种类型,它指定以字节为单位的存储大小。 这应该在Fortran语言90+任何费用,在引入式的概念来避免。 指定存储容量创建非便携式应用。



文章来源: What does “real*8” mean?