.NET浮点运算在x64调试和发行版之间是否一致?

时间:2019-03-27 17:53:48

标签: c# .net floating-point clr sse

this question中,询问者想知道是否可以期望浮点运算在调试和发行版配置之间的行为类似。

那里给出的答案表明事实并非如此,语言规范允许浮点运算的精度比用作输入的类型的精度高,并且在实践中,.NET Framework CLR倾向于利用可能的结果优化,例如在x87 FPU的80位寄存器中执行单精度和双精度数学运算。 (我自己为an answer添加了一个具体示例,以说明实际情况。)

这里的问题是相同的,但仅限于当我们将x64指定为构建平台时发生的情况。然后,.NET Framework运行时将浮点数学运算编译为SSE指令,从而可以为每个运算指定所需的精度,从而使编译器在满足用户要求时具有更大的灵活性。但是,语言规范似乎没有变化,据我所知,我们仍然无法保证浮点指令的精度。

因此,问题变为:

  

是否有具体的浮点运算示例在x64构建上的调试和发布配置之间给出不同的结果?如果没有,那么语言本身是否可以保证不存在此类示例?

0 个答案:

没有答案
相关问题