C++ 为ostringstream设置最大双精度的正确方法

C++ 为ostringstream设置最大双精度的正确方法,c++,C++,指 及 我有点困惑 我应该使用: ss.precision(std::numeric_limits<double>::digits10); ss.精度(标准:数值限制:数字10); 或 ss.精度(标准:数值限制:数字10+2); 要获得最大的双精度?它取决于数据中“十进制分量”的数量 std::numeric_limits::digits10将给出“浮动组件”的最大数量 精度指定要显示的位数(十进制+浮点组件) 如果十进制分量始终小于100(-99到99),则下面的代码始

我有点困惑

我应该使用:

ss.precision(std::numeric_limits<double>::digits10);
ss.精度(标准:数值限制:数字10);

ss.精度(标准:数值限制:数字10+2);
要获得最大的双精度?

它取决于数据中“十进制分量”的数量

std::numeric_limits::digits10将给出“浮动组件”的最大数量

精度指定要显示的位数(十进制+浮点组件)

如果十进制分量始终小于100(-99到99),则下面的代码始终提供最大精度

ss.precision(std::numeric_limits<double>::digits10 + 2);
ss.精度(标准:数值限制:数字10+2);
根据投票率最高的答案,std::numericlimits::digits10是:

在不损失精度的情况下可以表示的最大位数

ss.precision(std::numeric_limits<double>::digits10 + 2);
这意味着,如果将ss.precision设置为该值,这些浮点数字将是精确的;如果将其设置为+2,则仍将显示+2位,但不能保证准确计算最后两位


对于任意精度,如果您需要,请查看,

噢。很高兴在这里见到你。:)