3

在工作中,我们有 MSVS2010 Ultimate,我正在编写一个使用实数运行详尽模拟的程序。我遇到了不小的舍入错误,我已经采取了合理的步骤来确保我的算法在数值上尽可能稳定。

我想切换到 128 位四倍精度浮点数(long double,对吗?),看看它有多大的不同。

我已经替换了doublewith的所有相关实例long double,重新编译并再次运行了我的虚拟模拟,但结果与以前完全相同。

根据我在 C/C++ 中的项目属性页,这些是我的(调试)编译器选项:

/ZI /nologo /W3 /WX- /Od /Oy- /D "_MBCS" /Gm /EHsc /RTC1 /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fp"Debug\FFTU.pch" /Fa "Debug\" /Fo"Debug\" /Fd"Debug\vc100.pdb" /Gd /analyze- /errorReport:queue

我的开发 CPU 是 Core2 Duo T7300,但目标机器是 i7。两种安装都是 Windows 7 64 位。

4

1 回答 1

2

您可以切换到非 Microsoft 编译器,例如gcc、Borland 或 Intel。这些都识别long double为 80 位扩展精度,即 8087 的本机内部格式。

于 2011-09-21T23:19:25.393 回答