有谁知道如何找出long double
特定平台上的精度?我似乎在 17 位十进制数字后失去了精度,这与我刚使用double
. 我希望得到更多,因为double
在我的平台上用 8 个字节表示,而用long double
12 个字节表示。
在你问之前,这是针对欧拉计划的,所以是的,我确实需要超过 17 位数字。:)
编辑:感谢您的快速回复。我刚刚确认在我的系统上使用只能获得 18 位十进制数字long double
。
有谁知道如何找出long double
特定平台上的精度?我似乎在 17 位十进制数字后失去了精度,这与我刚使用double
. 我希望得到更多,因为double
在我的平台上用 8 个字节表示,而用long double
12 个字节表示。
在你问之前,这是针对欧拉计划的,所以是的,我确实需要超过 17 位数字。:)
编辑:感谢您的快速回复。我刚刚确认在我的系统上使用只能获得 18 位十进制数字long double
。
您可以通过以下方式找到std::numeric_limits
:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
您可以使用<cfloat>。具体来说:
LDBL_DIG