【问题标题】:setting precision设定精度
【发布时间】:2010-07-05 22:55:11
【问题描述】:

我从 F 到 C 的简单温度转换程序开始。我希望 C 温度四舍五入到小数点后 1/10 位。我有 5 个温度转换,并且可以手动设置每个的精度。但这也许不是最佳做法?

位置 0 的华氏温度为 55,为了获得 12.8 的摄氏温度,我必须使用 setprecision(3)。

  cout<<"location 1 = "<<location1f<<" F "<<setprecision(3)<<location01<<" C \n";  

对于第二个位置,华氏温度为 44,生成的 C 温度仅小数点后 1 位,因此我不得不将精度更改为 2。

  cout<<"location 2 = "<<location2f<<" F "<<setprecision(2)<<location2c<<" C \n";

我使用 double 作为我的变量类型。将 C 温度输出到小数点后一位的最佳方法是什么?

【问题讨论】:

    标签: c++


    【解决方案1】:

    setprecision 操纵器的行为取决于您碰巧所处的模式。默认模式会导致它设置显示的总位数。如果将显示模式设置为fixed,然后将precision设置为1,则始终显示小数点后一位。

    std::cout &lt;&lt; std::fixed &lt;&lt; std::setprecision(1) &lt;&lt; value;

    【讨论】:

      【解决方案2】:
      printf("My temperature is %2.1f\n", temperature)
      

      【讨论】:

        猜你喜欢
        • 2020-04-21
        • 1970-01-01
        • 1970-01-01
        • 2018-11-19
        • 1970-01-01
        • 1970-01-01
        • 2013-01-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多