日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++輸出問題:保留兩位小數_C 語言

作者:海轟Pro ? 更新時間: 2022-12-09 編程語言

輸出:保留兩位小數

問題

已知a=0.20001,輸出:0.20

思路

setprecision:功能是控制輸出流顯示浮點數的有效數字個數,注意是有效數字。如果和fixed合用的話,可以控制小數點后面有幾位。

這下這知道為什么輸出是0.2了吧,必須是輸出有效數字,后面的0要省略。如果a=0.21001,直接用就輸出是0.21。

為了得到0.20,在這里就要用到fixed了。

代碼

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    float a = 0.20001;
    cout.setf(ios::fixed);
    cout << "a=" <<fixed<< setprecision(2) << a <<endl; //輸出結果為a=0.20
    cout.unsetf(ios::fixed);
    cout << "a=" << setprecision(2) << a <<endl; //輸出結果為a=0.2
    return 0;
}

C++小數保留問題

由于在做題的時候設計到輸出格式的問題,省的每次都去找,所以自己稍微記錄一下

主要使用工具:#include中的setprecision() 和 setiosflags()

使用方法

  • setprecision()

顧名思義:就是設定精度。用來控制輸出的數的位數(從左到右的),自動四舍五入。且不保留小數后的0。比如:

double pi = 3.1415926000;
語句 輸出
cout<<setprecision(1)<<pi<<endl; 3
cout<<setprecision(2)<<pi<<endl; 3.1

但是這種形式如果有多位數,會采用科學計數法來表示,比如

double n=123.65
cout<<setprecision(2)<<n<<endl;

輸出1.2e02

所以如果整數部分不確定,或者要求末尾保留0的時候,那我們就無法準確保留適當的小數位數,因此我們需要另一個函數:

  • setiosflags():這是一個格式控制函數,它有很多參數,可以實現不同的輸出操作

在這里主要用到其中兩個:fixed 和 showpoint。

首先說fixed,以定點方式顯示實數,即顯示整數部分。舉個栗子:

double pi = 3.1415926000;
語句 輸出
cout<<setprecision(1)<<pi<<endl; 3.1
cout<<setprecision(2)<<pi<<endl; 3.14
cout<<setprecision(10)<<pi<<endl; 3.1415926
double n=123.65
cout<<setprecision(1)<<n<<endl;

輸出123.6

可見此時setprecision()已經是只控制小數位數了,但是:它仍然不能保留0。這時就有了showpoint。

還是那個例子:

cout<<setiosflags(ios::fixed|ios::showpoint)<<setprecision(10)<<pi<<endl;

輸出 3.1415926000

這樣我們就能完全控制小數位數的輸出了。

原文鏈接:https://haihong.blog.csdn.net/article/details/102469332

欄目分類
最近更新