大神快幫幫忙!!為什麼除法運算輸出的c值小數部分總為

2022-05-07 09:49:20 字數 4369 閱讀 4487

1樓:朝朝戰士邦

c是double,那麼最好用 %lf 來控制輸出...

你用了 %0.2 這是表示 保留兩位小數....

但是你之前是 int / int ,那麼系統會將結果 也轉換為int (int /double 或者 doube/int 或者其他則不會)....也就是說 不管 a/b 在我們自己計算出來是什麼結果,給c的只是那個數的整數部分,然後轉換為double賦值滴..

比如: a = 3, b=2;

a/b 在我們看來是 1.5;

但是 程式中會是 1;

然後賦值給c 是 1.0;

輸出時保留兩位小數: 1.00

2樓:

是因為這句話c=a/b;

a與b都是整型,他們相除的結果也是整型值,會自動捨去小數部分如果要得到小數部分,需要型別轉換,可以改成下面的一種形式:

c=(double)(a)/b;//直接型別轉換或者c=a*1.0/b;

3樓:

把c=a/b;寫成c=a*1.0/b;或c=((double)a)/b;就行了……因為a和b都是int型,所以a/b中的/就是取整除而不是浮點除;而/兩邊若至少有一個是浮點數時,/就自動提升為浮點除了。

c語言實數除法怎樣保留小數部分

4樓:丿

首先c語言中沒有「實數」的定義,但是可以通過定義變數型別和強制型別轉換來保留小數部分。

1、定義型別變數,**如下:

#include

int main()

double a = 7;

int b = 2;

double c = a / b;

printf("c = %f\n", c);

return 0;

2、強制型別轉換,**如下:

#include

int main()

int a1 = 9;

int b1 = 4;

double c1 = (double) a1 / b1;

printf("c1 = %f\n", c1);

return 0;

擴充套件資料

在c中主要資料型別分為4種,分別為:整型(int -- 佔2個位元組,輸出用%d),字元型(char -- 1個位元組,輸出用%c),單精度浮點型(float -- 2個位元組,輸出用%f),雙精度浮點型(double -- 4個位元組,輸出用%lf)。

printf(),呼叫標頭檔案中的printf函式,用於輸出函式的值。當想要輸出某個變數時,需要先告訴他輸出格式。

5樓:及時澍雨

在c語言中,

3/2=1

是取整運算

要保留小數

需要(3*1.0)/2=1.5

6樓:

強制型別轉換

a,b為int型

c=(float)a/b;

printf("%.2f",c);

c就為float型,比如5/3=1.66

想要幾位就改成%.nf.

希望能幫到你。

7樓:匿名使用者

y = 1.0/5.0

因為如果像你那樣寫的話先作int型數的運算,這時小數部分就丟了,然後轉換為double型的,加小數點後,預設為double型數的運算了,當然小數就不會丟啦

c語言如何計算除法,保留兩位小數。下邊程式的結果為什麼是 0.00

8樓:幻翼高達

需要準備的材料分別有:電腦、c語言編譯器。

1、首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如:test.cpp。

2、在test.cpp檔案中,調整c語言**:double c;c=1.0 * a/b;。

3、編譯器執行test.cpp檔案,此時成功將除法保留2位整數輸出。

9樓:匿名使用者

c語言做除法,只需要使用標準c的語法即可,各個作業系統均為提供浮點運算的,一般cpu上也都會有單獨的浮點運算單元(為了提高效率),顯示0.00只不過是列印函式的格式化輸出而已(你使用了.2f,說明打兩位浮點數)

10樓:匿名使用者

你的c要定義成float 才行還有就是這樣 c = 1.0*a/b

11樓:匿名使用者

printf("c=%.2d\n",c);

12樓:

把c定義成float或者double型就對了

13樓:匿名使用者

整型除法中,a/b,如果a

14樓:尋風

你定義的是整形,c=a/b;結果是c=0;

15樓:無情有義

把int a,b,c換成float a,b,c

16樓:匿名使用者

1, int a,b,c; 改為 float a,b,c;

在c語言計算出的結果中怎麼保留小數點後兩位

17樓:風若遠去何人留

可以在輸出的時候限制小數點位數。

當輸出單精度浮點型float變數f時,可以用printf("%.2f", f);

來使輸出結果保留兩位有效數字。其中.2就是代表保留兩位,如果要保留三位就是%.3f。用%.0f就是隻輸出整數。

如果是雙精度浮點數double,就需要用%.2lf來使輸出結果保留2位小數。

18樓:倒黴熊

比如float a = 23.456789;

printf("%.2f",a); //輸出為23.45

在c語言中除法運算為什麼沒有小數部分?

19樓:吉祥二進位制

1、在c語言中附法是整除運算,比如a/b,表示a中有幾個b。

2、示例:

3/2=1 //這是取整運算,即3中有1個2。

3、要保留小數,需要將結果表示成浮點數型別。

示例:(3*1.0)/2=1.5

或者 double result = 3 / 2 ;

20樓:大爺有好有壞

從基本的數字邏輯電路的角度來理解:

例如:5/2 ,5二進位制**為0101,除以2只需要將二進位制數右移一位,得0010。小數部分被捨去

21樓:匿名使用者

/是取整 整數除法的時候 只取整數部分,當除數或者被除數有一個為float型別時 才有小數部分

把除數 或 被除數 改為一個小數 就行了。。。

22樓:手機使用者

整數除整數=整數,如果你想得到浮點數可以這樣 ((5*x+1)*1.0)/(x*x+1); //浮點數除以整數得到浮點數

23樓:匿名使用者

int x,float y都變成double x

int x就會捨去小數

其實double的速度要比float快的。學過彙編的基本都知道

24樓:

/是取整 整數除法的時候 只取整數部分

25樓:雲夢語

宣告int i -》 float i

/是取整 整數除法的時候 只取整數部分,當除數或者被除數有一個為float型別時 才有小數部分

26樓:匿名使用者

編寫c語言的專家規定的.

27樓:竇文蓬

把x做強制型別轉換(double)x.

28樓:

除法運算子" / ",如果是兩個整數相除結果為整數如果需要保留小數時 必須將其中一個除數轉換為浮點數#include

#include

main()

或者#include

#include

main()

c語言題目 除法保留兩位小數

29樓:匿名使用者

printf("%。2d",h);

這樣格式就是2為有效數字

30樓:匿名使用者

#include

void main()

注:%f:不指定寬度,整數部分全部輸出並輸出6位小數。 %m.nf:輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。

%-m.nf:輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。

為什麼喜歡人那麼難?大神們幫幫忙

是的!喜歡不難!愛就難!你要弄清是喜歡還是愛!愛不會很難也不會使人煩惱,只是自己給自己增加壓力,自尋煩惱。愛一個人,應該是一件很快樂的事情。我們都知道,愛代表著一種責任,愛是一種無條件的付出和犧牲,愛是永無止境永不失落的,愛不是不要回報,而愛的回報就是對方的永遠快樂和幸福。而對方的快樂就是你的快樂,...

為什麼星星比月亮多?大神們幫幫忙

因為人類只有一個近鄰,那就是月亮,你所說的星星其實就是宇宙中的恆星,它們是無數的。與地球沒有關係。星星是行星,宇宙中有不計奇數個!而月亮是小行星,因受地球引力所以圍繞在地球邊緣!閃爍的星星 是每個人的願望 因為月球只有一個,而星星 行星 就不知有多少了 如果月亮多的話,晚上就不黑了 星星 嫁給了 月...

得了溼診吃什麼藥效果快且好?大神們幫幫忙

有點艾葉煮點水洗洗就可以,平時在吃些提高免疫力的藥 溼疹要怎麼樣 吃什麼藥好呢?大神們幫幫忙 過敏吃什麼藥最好哦?大神們幫幫忙 你以前是不是用化妝品的 而且品牌很多 可能是你體質過敏的 具體你是什麼情況不瞭解也不好說求採納 xuesu 過敏效果快,而且不 吃藥對身體內部傷害也是很大的!感冒吃什麼藥好...