6 c c# floating-point floating-accuracy
我有一个用C#编写的应用程序,它也会调用一些C代码.C#代码获取一些双重作为输入,对其执行一些计算,将其传递给在其上执行自己计算的本机层,然后传递回C#层.
如果我在不同的机器上运行相同的exe/dll(所有这些都是英特尔的x64),我得到的最终结果是否可能在不同的机器上有所不同?
如果您使用相同的可执行文件,结果应该是相同的。然而,值得注意的是,浮点计算通常可以通过许多持久设置(无穷大模式、舍入模式等)进行高度定制。这意味着相同的浮点指令可以根据当前设置的组合产生不同的结果。如果您的应用程序确保在执行开始时将所有这些设置重置为相同的值,那么结果应该是相同的。但是,如果其中某些设置未重置,或者依赖于外部参数(例如环境变量),那么在某些情况下您可能最终会在不同的计算机上观察到不同的结果。