当我使用long double时,我得到的精度比使用double差。3.14159265358979323846264L用源代码编写long double const很好吗?或者我应该添加L以外的其他东西
我解决了这个问题。我更改了算法以使其更精确。
发布于 2011-10-25 23:57:53
你不会得到更差的精确度。
发生的情况是,当您打印输出数字时,流库正在截断显示的值。使用std::setprecision获取特定的精度。
double x = 1.0/3;
long double y = 1.0/6;
// Prints out the precision
std::cout << "Limit: " << std::numeric_limits<double>::digits10 << "\n";
std::cout << "Limit: " << std::numeric_limits<long double>::digits10 << "\n";
// prints the numbers with max precision.
std::cout << std::setprecision(std::numeric_limits<double>::digits10) << x << "\n";
std::cout << std::setprecision(std::numeric_limits<long double>::digits10) << y << "\n";https://stackoverflow.com/questions/7891504
复制相似问题