有没有比双精度型更“大”的原生c++变量类型?
浮点数是7
double等于15 (当然取决于编译器)
有没有更大的是原生的,甚至是非原生的?
发布于 2008-11-02 20:58:44
C++有long double,但不能保证它比普通的double更精确。在x86平台上,double通常是64位,而long double要么是64位,要么是80位(如果我没记错的话,这会给出19个有效数字)。
您的里程可能会有所不同,特别是如果您不是在x86上。
发布于 2008-11-03 00:00:16
long double通常只使用10个字节,但由于对齐的原因,在一个结构中实际上可能需要12或16个字节(取决于编译器和选项)。
10字节长的double提供了64位的尾数;当您想要在不损失精度的情况下以浮点形式存储64位整数时,这非常方便。
发布于 2008-11-02 21:30:48
您可以使用GNU MP。它的floating-point functions有无限的尾数和32位或64位(取决于原生字长)指数。它还附带了一个C++ wrapper。
https://stackoverflow.com/questions/257353
复制相似问题