C++ 编译Windows C++;VS2010中长双工的应用
在工作中,我们有MSVS2010 Ultimate,我正在编写一个程序,使用实数进行详尽的模拟。我得到了非平凡的舍入误差,并且我已经采取了合理的步骤来确保我的算法在数值上尽可能稳定 我想切换到128位四精度浮点数(长双精度,对吗?),看看它有多大的不同 我已将所有相关的C++ 编译Windows C++;VS2010中长双工的应用,c++,windows,visual-studio-2010,precision,long-double,C++,Windows,Visual Studio 2010,Precision,Long Double,在工作中,我们有MSVS2010 Ultimate,我正在编写一个程序,使用实数进行详尽的模拟。我得到了非平凡的舍入误差,并且我已经采取了合理的步骤来确保我的算法在数值上尽可能稳定 我想切换到128位四精度浮点数(长双精度,对吗?),看看它有多大的不同 我已将所有相关的double实例替换为longdouble,重新编译并再次运行虚拟模拟,但结果与以前完全相同 根据C/C++中的“我的项目”属性页,这些是我的(调试)编译器选项: /ZI/nologo/W3/WX-/Od/Oy-/D“_MBCS”
double
实例替换为longdouble
,重新编译并再次运行虚拟模拟,但结果与以前完全相同
根据C/C++中的“我的项目”属性页,这些是我的(调试)编译器选项:
/ZI/nologo/W3/WX-/Od/Oy-/D“_MBCS”/Gm/EHsc/RTC1/GS/fp:precise/Zc:wchar\u t/Zc:forScope/fp“Debug\FFTU.pch”/Fa“Debug\”/Fo“Debug\”/Fd“Debug\vc100.pdb”/Gd/analyze-/errorReport:queue
我的开发CPU是Core2Duo T7300,但目标机器将是i7。两种安装都是64位Windows 7。您可以切换到非Microsoft编译器,如
gcc
、Borland或Intel。所有这些都识别为“代码>long double /CODE>80位扩展精度”,8087的.VisualC++的原生内部格式<,VisualC++,sizeof(long double)
是12。VC++double
使用80位寄存器保存浮点计算的中间结果,但在内存中以64位存储。