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

2021-10-17 02:38:59 字數 708 閱讀 7780

1樓:匿名使用者

20/3是兩個整型常量進行運算,結果進行了取整

改為d=20.0/3.0;

2樓:魔龍嗜血

這是型別轉換的問題。

首先 20/3,系統會認為這是整形資料的運算,得出的結果為6,然後將整型資料賦給實型資料,就會將整型資料強制轉換為實型資料。故輸出結果為 6.000000

樓主你同時也犯了一個錯誤,計算機所有實型資料是以二進位制形式儲存,不同的機器、編譯器,對同中資料型別的二進位制位數也不同。例如:

int 型資料一般是2位,但也有4位時候。所以不要被教材的部分內容迷惑。

3樓:匿名使用者

應為 20 和 3 在c中 預設為int 型20/3 則是兩個整形相除 (整形相除的結果是整形 直接忽略掉小數部分)

所以結果是6

而d是double型

所以又把6轉換成double型

為6.000000

4樓:

d=20/(double)3;這麼改就行了,d為浮點型,但是20和3是int型的。

5樓:催淚單

20是整型,3是整型,所以20/3的結果必然是整型即是6,然後把6賦給d,所以被轉換為6.000000

如果想得到浮點數,可以20*1.0/3,先將20轉換成浮點數,之後的結果自然是浮點數

C語言中把double賦給int合法嗎

可以,但是函式引數是不行的,給定int就只能給int,所以a,b,e是對的 沒問題,都是合法的,變數型別會自動轉換。c語言中double 和int型的資料之間可相互賦值嗎 可以。如 double a 1.2 int b b a b 1 取整了 int a 1 double b b a b 1.000...

c語言中如何用實驗的方法確定double型浮點數能精確

include stdio.h int main 根據列印的結果我們可以 判斷位數的,如果超過一定位數,顯示的就是錯誤的了,這樣可以看出double的精確度 例子程式如下 include stdio.h int main 可以通過定義一個double型的變數,並對變數進行賦值,之後輸出該變數的值即可...

c語言中,如何取出double型別數的每一位到陣列

1 直接用數轉換到字串的方法即可。sprintf s,lf a s是字元陣列,a是double。這樣就把a寫到s中了。2 例程 include include using namespace std int main include main for i 0 i 9 i printf d array...