1

我在这里得到了一个代码,当我在 Win 和 Mac OS 上运行它们时,结果的精度是不同的,有人可以帮忙吗?

const double c = 1 - exp(-2.0);
double x = (139 + 0.5) / 2282.0;
x = ( 1 - exp(-2 * (1 - x))) / c;

结果都是 0.979645005277687,但十六进制不同:

Win: 3FEF59407B6B6FF1
Mac: 3FEF59407B6B6FF2

我怎样才能得到相同的结果。

4

1 回答 1

1

我怎样才能得到相同的结果。

除非 OS X 上的数学库使用完全相同的实现/算法进行计算e ^ x,否则您不会也不能真正得到完全相同的结果。浮点计算不准确,处理它。

于 2013-03-05T06:05:38.657 回答