不久前我写了一个程序,它使用了一些阶乘函数.我使用long double数据类型来支持"相对"大数字.
现在,我从代码块改为Visualstudio 2010,我想知道为什么我的程序不再工作,直到我在一些研究中意识到MS已经放弃了长双数据类型.这有什么特别的原因吗?对我而言,它看起来非常像技术方面的倒退.
有没有其他选择?(我也很乐意使用boost库中的替代品).
这个问题可能听起来像初学者,但是当我发现这个问题时,我认为我要么是初学者,要么我的作品缺少一些东西:
int main()
{
cout << sizeof(double) << endl;
cout << sizeof(long double) << endl;
cout << DBL_DIG << endl;
cout << LDBL_DIG << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
计划产出:
8
8
15
15
我认为long double是10个字节,有18个十进制数字,而double8个字节,有15个数字,但似乎我错了.
为什么会这样?
在64位机器上使用MSVC 2010.