如何在 Fortran 中将 real(kind=8) 类型的数组正确转换为 real(kind=4) 类型之一

这个问题适用于 Fortran,更准确地说是编译器 gfortran。

我需要知道如何将实数(种类= 8)数组转换为实数(种类= 4)数组,以便保留数组每个条目中的所有合理数字。

显然,从 kind=8 到 kind=4 的类型转换意味着信息丢失。因此,我正在寻找的是丢失尽可能多的信息的正确方法 - 但不是更多。

emrick 回答:如何在 Fortran 中将 real(kind=8) 类型的数组正确转换为 real(kind=4) 类型之一

到实数的转换是使用 real() 内在函数完成的。可选的 kind= 参数指定结果的类型。

如果您确实需要结果为 kind 4,则使用

 real(x,4)

你可以对结果做任何你想做的事情。例如,将其分配给一个变量。

您将获得与隐式转换相同的结果,但显式转换显示了意图,并且还避免了某些有关可能损失精度的编译器警告。

一如既往:

  1. 最好为您的种类参数使用命名常量,以便您可以轻松地在任何地方更改它。

  2. 使用种类数字作为字面常量,如 4 或 8 是不可移植的,而且非常丑陋。 Fortran 90 kind parameter

本文链接:https://www.f2er.com/8541.html

大家都在问