我该怎么做

std::cout << 123456789.12

打印此:
123456789.12

它总是打印此:
1.23457e+008

我知道我必须使用标志,但是我不能弄清楚正确的组合。如果我设置了固定标志,它会打印
123456789.120000

最佳答案

您可以使用:

#include <iostream>
#include <limits>
using namespace std;

int main() {
    double c = 123456789.12;
    cout.precision(numeric_limits<double>::digits10 + 1);
    cout << c << endl;

    return 0;
}

基本上 limits package具有所有内置类型的特征。
浮点数(float/double/long double)的特征之一是 digits10 attribute。这定义了以10为底的浮点数的精度。

现场观看:http://ideone.com/Ity9m7

要继续阅读,请查看另一个类似的问题:How do I print a double value with full precision using cout?

09-26 21:24