【发布时间】:2010-07-28 15:01:34
【问题描述】:
我一直致力于将旧项目从 Visual Studio 6 移植到 2008 年。在克服了一些障碍后,我现在可以构建和执行新项目。但是,我注意到两个版本的程序的输出略有不同,就好像浮点计算不等价一样,尽管代码相同。
这些差异通常开始时很小 (
Visual Studio 6 表示:
0x4197D6CC85AC68D9
十进制等价物:
99988257.4183687120676040649414
Visual Studio 2008 表示:
0x4197D6CC85AC68EB
十进制等价物:
99988257.4183689802885055541992
我已尝试对此进行调试以追踪差异开始的位置,但输出来自迭代数值求解器,因此以如此高的精度进行追踪将是一个耗时的过程。
是否有人知道两个版本的编译器的双精度算术运算之间的任何预期差异? (或者关于可能导致这种情况的任何其他想法?)
目前,我的下一步可能是尝试创建一个简单的演示应用程序来显示问题并且更容易检查。
谢谢!
【问题讨论】:
标签: c++ visual-studio visual-studio-2008