c語言的關於 對乙個double型資料進行四捨五入運算

2025-04-08 10:25:27 字數 2984 閱讀 2748

1樓:鄂冰濯玉

對double資料型別。

進行四捨五入運算,可以利用double轉為整型。

時強制取整來做到。

將double型別資料,強制轉友乎衝換為int型別,會強制擷取整數頃答部分。

比如doublea

int)a的值就是1。

由於是強制取整,所以即使是轉為int後,同樣是1,這與四捨五入的要求不符。所以可以轉換一下演算法,做(int)(a+就可以實現四捨五入到整數的效果了。

要實現四捨五入到某一位,可以先乘乙個好殲值,將該位移動到個位,取整後,再除上這個值,將其移動回去。

比如將double

四捨五入保留2位小數,可以寫作。

int)(a*100+。

2樓:蟻昂雄賞敬

推薦的方法:首先將該數存入double型別的變數中,然薯友掘後將該變數乘以100(小數數核點後移2位),加上,再強制取整,最後除以小數點前移2位)即得到了結果。

表示式如下(double變數為i):i

int)(i*100+

使用printf輸出時,如果要保留兩位小數輸出,請使告逗用%.2f或%.2lf佔位符。

3樓:春志學陳卓

貌似我的直接輸出printf("%2f",a);就自動四捨五入了。

你的租差第乙個棗森a的值沒有任何凳型畝改變,你只是用了a去計算,但是並沒有對a重新賦值。

第二個,你對a重新賦值了,經過你的式子之後,實際上是把小數點第三位的數加了五,b=(a*100+;這一句拆開算就是(a*100)/100+即a+,所以才會不管你的原數是什麼,程式執行後都會進位。

c語言編寫程式,對乙個double型資料進行四捨五入,要求保留兩位有效小數,求演算法。

4樓:信必鑫服務平臺

例如double型的資料為a=,程式如下:

#incloud

main( )

double a;

printf("請輸入乙個double型資料:」)a= int (a*100+ ;

printf("%lf",a)。

這時候printf輸出的結果將是。

5樓:零度之木

貌似我的直接輸出printf("%.2f",a);就自動四捨五入了。

你的第乙個a的值沒有任何改變,你只是用了a去計算,但是並沒有對a重新賦值。

第二個,你對a重新賦值了,經過你的式子之後,實際上是把小數點第三位的數加了五,b=(a*100+;這一句拆開算就是(a*100)/100+即a+,所以才會不管你的原數是什麼,程式執行後都會進位。

6樓:網友

第乙個(a*100+;這句沒有意義,你的本意應該是a=(a*100+;

第乙個4舍5入是printf函式實現的,不是你自己實現的。

第二個也一樣,printf函式實現了4舍5入,因為你加了,所以總是進入。比如你輸入,計算後a=,列印出來就是。

c語言編寫程式,對乙個double型資料進行四捨五入,要求保留兩位有效小數,求演算法。

7樓:跪著作揖

例如double型的資料為a=,程式如下:

#incloud

main( )

這時候printf輸出的。

專結果將是。

8樓:

回2位),加上,再強制取整,最。

答後除以小數點前移2位)即得到了結果。

表示式如下(double變數為i):i = (int)(i*100+使用printf輸出時,如果要保留兩位小數輸出,請使用%.2f或%.2lf佔位符。

一道程式設計題 double型別變數舍入原則

9樓:匿名使用者

你不應該用 ***(1+n/100) 得到的值作為舍入的值。

應該只算出來實際tax,對tax進行舍入(其實只會入,不會舍的),把舍入後的tax再加上原來**作為****。

~在這裡體現沒有舍,只有入,rounded up,向上取的倍數)

其實你的想通和想不通反過來了。

題目中說的得到兆笑的值進行舍入之後應該清信是的倍數,所以你理解答猜輪的是不符合題目要求的舍入之後的要求的。而就符合要求。

編寫程式,對乙個double型資料進行四捨五入運算,要求保留兩位有效小數

10樓:一汽大眾拭壬

例如double型的資料為a=,程式如下:

#incloud

main( )

double a;

printf("請輸入乙個double型資料:」)a= int (a*100+ ;

printf("%lf",a)。

這時候printf輸出的結果將是。

11樓:老男孩

可以使用c語言中的標頭檔案中的round()函式來進行四捨五入操作。round()函式的原型如下:

double round(double x);

該函式可以將引數x進行四捨五入,並返回結果。可以通過將x乘以乙個指定的精度(例如100)來保留兩位有效小數,再將結果除以這個精度來獲得保留兩位有效小數的四捨五入結果。下面是乙個示例程式:

#include

#include

int main()

double x, result;

int precision = 100; // 指定精度為100

printf("請輸入乙個double型資料:");

scanf("%lf", &x);

result = round(x * precision) / precision; // 四捨五入並保留兩位有效小數。

printf("四捨五入結果為:%.2lf", result); // 輸出結果並保留兩位有效小數。

return 0;

注意,需要使用%lf格式化輸入和輸出double型資料。

請教c語言中double問題,請教一個c語言中double問題?

20 3是兩個整型常量進行運算,結果進行了取整 改為d 20.0 3.0 這是型別轉換的問題。首先 20 3,系統會認為這是整形資料的運算,得出的結果為6,然後將整型資料賦給實型資料,就會將整型資料強制轉換為實型資料。故輸出結果為 6.000000 樓主你同時也犯了一個錯誤,計算機所有實型資料是以二...

關於c語言的問題,關於C語言的一個問題

include define max x,y,z x y?x y z?x y?x y z define min x,y,z x int main include int main void include include need random srandom include need time i...

關於c語言的簡單程式,關於c語言的一個簡單程式

首先,並不十分了解這個程式的本意是什麼,但是錯誤是很明顯的,看提示就該知道了。賦值符號 左邊的運算元必須是合法的左值,表示式不是合法的左值 這也是為什麼可以通過像你那樣寫等於操作的時候可以避免把等號寫成賦值符號的原因 如下修改 a i 100 b i 100 a 10 c i 100 a 10 還有...