【问题标题】:Why output of cout << setprecision(2) << 0.999 is 1 instead of 1.0?为什么 cout << setprecision(2) << 0.999 的输出是 1 而不是 1.0?
【发布时间】:2016-06-22 09:17:35
【问题描述】:

有效数字为 2。

为什么输出

cout << setprecision(2) << 0.999 << endl;` 

是1 而不是1.0?

【问题讨论】:

  • 你的意思是endl。对吗?
  • @TalhaIrfan 是的,我的意思是 endl
  • 我希望下面的回答能解决您的问题。如果可以关闭它,请接受他的回答!
  • 这里不是真正的问题,为什么要打印1.0而不是0.9?
  • 啊,我自己的问题在这里得到了回答:stackoverflow.com/questions/10922366/…

标签: c++ significant-digits


【解决方案1】:

默认格式不打印尾随零;您需要将浮点格式设置为fixed,另请参见this reference。所以你需要的是

cout << setprecision(2) << fixed << 0.999 << endl;

另请注意,setprecision 指的是十进制数字,因此对于 1.0,您需要 setprecision(1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 2022-06-27
    • 2012-06-12
    • 2013-01-09
    • 2020-03-14
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多