有谁知道如何在特定平台上找出long double
的精确度?在17位十进制数后,我似乎失去了精度,这与我使用double
时的精度相同。我希望得到更多,因为double
在我的平台上用8个字节表示,而long double
是12个字节。
在你问之前,这是针对Project Euler的,所以是的,我做需要超过17位。 :)
编辑:感谢您的快速回复。我刚刚确认在我的系统上使用long double
只能得到18位小数。
答案 0 :(得分:34)
您可以找到std::numeric_limits
:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
答案 1 :(得分:5)
您可以使用<cfloat>。具体做法是:
LDBL_DIG