在visual studio 2008中,我有例如这个
float a1 = 1.2f/1.8f;
float a2 = 450.f;
float a3 = a1*a2;
float res1 = 350.f - a3;
float res2 = 350.f - a1*a2;
res1 和 res2 中的值给出了不同的结果,据我所读,这是因为 a1*a2 (在 res2 中)以更高的精度完成,它与我们保存在 a3 中的值不同。
在 Xcode 上
如果我们有相同的集合, res1 和 res 2 给出相同的结果
我们如何在 Xcode 中进行设置以获得与在 Visual Studio 中相同的结果,以及如何在 Visual Studio 中进行设置以获得与在 Xcode 中相同的结果?
谢谢
编辑:我在 Visual Studio 中发现给出相同结果的是:
float res1 = 350.f - a3;
float res2 = 350.f - (float)(a1*a2);
所以这意味着没有 (float) a1*a2 以更高的精度完成,从 350.f 中减去,然后将结果“缩放”为浮点数。使用 (float) a1*a2 以更高的精度完成首先缩放为浮点数,然后以更高的精度从 350.f 中减去,然后“缩放”回浮点数。