c – 如何制作“std :: cout << 123456789.12”print“123456789.12”?

我该怎么做
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具有所有内置类型的特征.
浮点数(浮点数/双/长双精度)的特征之一是digits10 attribute.这定义了基数10中浮点数的精度.

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

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

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...