我在这里得到了一个代码,当我在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
我如何得到相同的结果。
答案 0 :(得分:1)
我如何得到相同的结果。
除非OS X上的数学库使用相同的实现/算法来计算e ^ x
,否则您将无法也无法获得完全相同的结果。浮点计算并不精确,处理它。