gpt4 book ai didi

c - Fortran/C 中间语言问题 : results differ in the 14th digit

转载 作者:行者123 更新时间:2023-12-01 13:53:42 25 4
gpt4 key购买 nike

我必须同时使用 C 和 Fortran 来做一些模拟。在他们的类(class)中,我通过在 C 中定义一个指针来访问由 Fortran 分配的内存,从而在两个编程语言部分中使用相同的内存。有问题的变量的数据类型是

real(kind=8)

对于 Fortran 和

double

对于C。相同的计算结果现在在各自的编程语言中不同,我需要直接比较它们并得到一个零。所有计算仅在上述精度下完成。差异始终在第 13-14 位。

解决这个问题的好方法是什么?任何编译器标志?只是在一些数字后截断?

非常感谢!

最佳答案

float 并不完全准确。曾经。 Even cos(x) == cos(y) can be false if x == y.

因此,在进行比较时,请考虑到这一点,并允许值相差一些小的 epsilon 值。

关于c - Fortran/C 中间语言问题 : results differ in the 14th digit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com