C語言。從鍵盤讀入實數,對其進行四捨五入處理,要求精確到到小數點後兩位

時間 2021-08-30 17:08:47

1樓:瑞春楓

對12.345來說,先乘以1000,得到12345,賦值給整型,12345%10得到個位數,判斷這個個位數若大於等於5則把12345加10-個位數,若小於5,則12345減去個位數,然後把最終的數先除以10,再除以100.0。

2樓:匿名使用者

可以肯定的告訴你,你找的答案肯定不對。

不信你輸2.225看一下,結果還是2.22原程式一直在對y處理,結果最後都沒有返給x。肯定不對。

為什麼可能會出現正確的結果,這個就很複雜了,要從浮點的儲存說起了。

我現在也還不是很瞭解。

浮點數在計算(特別是和整型混合計算時)、輸入和輸出的時候都可能有精度的丟失。

具體的我也不是很懂,你可以自行去研究一下。

比較完美的程式應該要用double型別,提高精度。

就算有返加給x,用float型別還是會出錯。很難理解。

#include

void main()

x=(double) y/1000;

printf("該實數,四捨五入保留兩位小後是%.2lf\n",x);}

3樓:匿名使用者

#includ

void main()

/*應該這樣就ok了。

4樓:

可以給你介紹實現方法。當然,如果你需求**,也可以寫給你。

如何用c語言將一個實數內部精度四捨五入到小數點後第二位

5樓:自我程式設計

#include

int p10(int m);//求10的次方double rounding(double n,int w);//小數四捨五入,引數w:精確到第幾數

int main()

return 0;

}double rounding(double n,int w)//小數四捨五入,引數w:精確到第幾數

int p10(int m)//求10的次方{int i,sum=1;

for(i=0;i

6樓:匿名使用者

利用取整截斷小數部分的特性來實現:

float x=3.1415,y; int a;

y=x*100+0.5; a=y; y=a; y/=100; //至此,y中儲存的數為x的保留2位小數的結果

7樓:匿名使用者

正數 x 四捨五入的技巧:

x --> (int)(x+0.5)

當 x=n+r, 0<=r<1,

若 0<=r<0.5, 則r+0.5<1, (int)(x+0.5)=(int)(n+r+0.5)=n

若 0.5<=r<1, 則1<= r+0.5, (int)(x+0.5)=(int)(n+r+0.5)=n+1

關於c語言讀入資料的問題,高手進

1.用輸入控制結束 比如說輸入兩個0即為結束 在迴圈裡面的開頭加上if x 0 y 0 break 2.用scanf控制 scanf的返回值是讀取成功的個數。所以,也可以輸入字元型作為結束 如果想不靠外面的輸入,也不靠內部的計數,總要有個結束條件吧?如果想不影響系統,我的意思是兩種辦法都可行,重點是...

c語言程式 從資料檔案中讀入資料到陣列

刺友互 1 首先讓我們新建一個class類。2 書寫main方法。3 讓我們在c盤根目錄下新建一個txt文件,內容為 test 4 然後讓我們接著寫 首先建立一個file物件。5 然後建立一個stringbuilder物件,用於儲存讀取的內容。6 接下來,我們用bufferedreader類來進行讀...

用c語言,不是c從鍵盤中輸入字串,然後按照下面要求輸出新字串

include stdio.h include string.h include malloc.h void insert char a int main include include include void insert char char int int main printf n d n ...