有没有人知道如何在特定平台上查找 long double
的精度?我似乎在17个小数位后失去了精度,这与我只使用 double
时相同。我原本期望能获得更多精度,因为在我的平台上,double
用8字节表示,而 long double
则用12字节。
在你问之前,这是为了欧拉计划,所以是的,我需要超过17位数字。 :)
编辑:感谢快速回复。我刚刚确认,在我的系统上只能通过使用 long double
来获得18位小数位。
有没有人知道如何在特定平台上查找 long double
的精度?我似乎在17个小数位后失去了精度,这与我只使用 double
时相同。我原本期望能获得更多精度,因为在我的平台上,double
用8字节表示,而 long double
则用12字节。
在你问之前,这是为了欧拉计划,所以是的,我需要超过17位数字。 :)
编辑:感谢快速回复。我刚刚确认,在我的系统上只能通过使用 long double
来获得18位小数位。
你可以使用 std::numeric_limits
来查找:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}