C++ 如何修复cpp中小数点后有2位数字的双精度数字?

C++ 如何修复cpp中小数点后有2位数字的双精度数字?,c++,C++,就像 AC = sqrt((AB*AB)+(BC*BC)); BD = sqrt((BC*BC)+(CD*CD)); (其中所有变量均为双精度类型) 这里,我想让AC和BD的值固定在小数点后2位,然后我想把AC和BD相加。现在,如果我取(小数点后3位)AC=4.564和BD=4.789,相加后的结果是9.351。同样,如果我取(小数点后的2位数)AC=4.56和BD=78,那么将它们相加后的结果是9.34。现在,如果我打印两个结果,在小数点后用两位数字固定,则分别显示9.35和9.34。但

就像

AC = sqrt((AB*AB)+(BC*BC)); 

BD = sqrt((BC*BC)+(CD*CD));
(其中所有变量均为双精度类型)


这里,我想让AC和BD的值固定在小数点后2位,然后我想把AC和BD相加。现在,如果我取(小数点后3位)AC=4.564和BD=4.789,相加后的结果是9.351。同样,如果我取(小数点后的2位数)AC=4.56和BD=78,那么将它们相加后的结果是9.34。现在,如果我打印两个结果,在小数点后用两位数字固定,则分别显示9.35和9.34。但是我想要9.34作为结果。

两个精度为的小数点

  • 乘以100
  • 加0.5
  • 向下舍入到最接近的整数
  • 除以100

  • 但是,如果您恰好以整数值结束,您将不会有“小数点后2位”

    如果您试图输出小数点后2位的双精度值,则对流使用修饰符,如下所示:

    std::cout << std::setprecision (2) << std::fixed << AC;
    

    std::打印时不能使用
    setprecision()
    。请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。请参阅“如何询问”页面,以获得澄清此问题的帮助。让我们来看一下,我发现AC=4.564和BD=4.789;现在,如果我想用BD加AC,那么结果是9.351,如果现在我打印小数点后2位固定的数字,那么它将显示9.35。但是如果我取AC=4.56,BD=4.78,那么结果是9.34。我想要9.34作为结果。建议丢失
    printf
    。这是C++。