|
编译器为你提供几种类型的 real,比如 单精度,双精度,四精度(也叫双双精度,有的编译器不提供四精度)
分别用不同的 kind 值来代表,对大部分编译器,上面的三种real类型的kind值是4,8,16(但不一定)
而
selected_real_kind(p,r)
函数的目的,就是请编译器为你选择合适的real类型。
这个函数,会返回至少满足 p 位十进制有效位数,且能表达最大 r 位十进制的 real 类型中“最小”的那一个。
比如 p=5,r=15那么单精度能满足,双精度也能满足,四精度仍然满足。那么编译器返回单精度的kind值(通常是4)
比如 p=9,r=15那么单精度不能满足,双精度能满足,四精度也满足。那么编译器返回双精度的kind值(通常是8)
而 p=10,r=100,也是一样,单精度不满足,双精度四精度满足。所以也返回双精度的kind值(通常是8)
回到你的问题,
selected_real_kind(16,324),因为双精度只有15位有效数字,所以不能满足,编译器会返回四精度的kind值(通常是16)
selected_real_kind(15,14),双精度可以满足,因此返回双精度的kind值(通常是8)
|
|