c++輸出精度控制


題目描述:

數列的第一項為n,以后各項為前一項的平方根,求數列的前m項的和。

輸入描述:

輸入數據有多組,每組占一行,由兩個整數n(n < 10000)和m(m < 1000)組成,n和m的含義如前所述。

輸出描述:

對於每組輸入數據,輸出該數列的和,每個測試實例占一行,要求精度保留2位小數。

 

  這里涉及到一個輸出精度的控制,我們知道在這C語言中,控制輸出精度可以直接用以下代碼。

printf("%.2lf\n",sum);

  在C++中輸出控制精度需要用到std::ios_base::precison,即std::cout.precison()。這個函數是用來控制輸出的有效位,如下所示

double n = 0.001010;
cout.precision(4);
cout << n << endl;

  這個的輸出結果就是0.00101。從第一個1開始為第一個有效位,連續輸出4個有效位,最后一位的0被省略。這並沒有達到我們要設置小數點后位數的要求,所以在查閱了資料后發現結合std::fixed使用可以控制小數點后的位數,使用方法如下:

double n = 0.001010;
cout.precision(4);
cout << fixed << n << endl;

  這個的輸出結果就是0.0010。

  需要注意的是 cout.precision(4); 后cout的精度一直都是4個有效位,若設置了fixed,就一直控制小數點后的位數。目前還沒有消除precision的方法,只能重新設置成新的有效位,但是針對fixed可是通過cout.unsetf( ios::fixed );來消除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM