我有一个代码在这里,当我在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
我怎么能得到相同的结果。
我有一个代码在这里,当我在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
我怎么能得到相同的结果。
我怎么能得到相同的结果。
除非在OS X上的数学库使用非常相同的实现/算法计算e ^ x
,你不会也没有真正得到完全相同的结果。 浮点计算不准确,处理它。