1樓:
int 是整型變數
抄,double是雙精度浮點型;
你這個計算,最好定義r,s,l用float或者double;否則,計算表示式3.14*r*r相當於3*(int)r*(int)*r,變數會被捨棄小數取整再計算(不是四捨五入)
#include
#include
int main()
2樓:一勺晨露
int是整型,
抄double是雙精度浮點型,比int型精度要高你給s,l定義的都是int型,但是s,l和3.14,6.28分別運算後就自動變成了double型了
c語言規定,精度低的可以轉換為精度高的,精度高的不能轉換為精度低的,所以double型是不能夠轉換為int型的
你可以把r,s,l都定義為double型就ok了
3樓:kkliliqd是我
s是int 但是你3.14是double 乘以int結果也是double,相當於把double**的轉為int了你應該定義為double
c語言double和int有什麼區別?各個表示範圍是多少?
4樓:蛙家居
double是雙精度實型數(小數),int為整型,整型[signed]int -2147483648~+2147483648,雙精度double 1.7 x 10^(-308)~ 1.7 x 10^(+308) 。
1、int 有符號整數,根據系統(編譯器)不同,有不同的範圍,16bits系統(dos系統):-(2^15)到(2^15-1),32bits系統:-(2^31)到(2^31-1),64bits:
-(2^63)到(2^63-1)。如果是無符號整數unsigned int,那麼16bits系統(dos系統):0到(2^16-1),32bits:
0到(2^32-1),64bits:0到(2^64-1)。
2、double為雙精度浮點型,能準確到小數點後十二位,1.7 x 10^(-308)~ 1.7 x 10^(+308)。
3、因為所有的計算機語言,每個型別都向更精確的方向去自動轉。比如說,int能自動轉double型,但是倒過來就不行,必須強制轉。
5樓:匿名使用者
區別:double雙精度浮點數,就是有小數點的數,並且範圍大於intint整型,只能表示整數
它們的範圍隨著機子不同而不同,如在32位機子和64位機子,它們是不同的。32位機int(-2^31 ~ 2^31)和64位機int是不同的。
double可以表示負數
c語言的double 和int的區別,%d和%f的區別
6樓:南北浮生
int:整型,即我們通常意義下的整數變數,例如1、2、3、4、5等。
double:雙精度實型數,即我們通常意義下的小數,例如1.25、1.37、5.0等。
%d:這是c語言中scanf用於輸入整數的格式,輸入整數的格式是scanf("%d",&a)。
%f:這是c語言中scanf用於輸入小數的格式,輸入整數的格式是scanf("%lf",&a)。
在你的公式c=(f-32)*5/9計算結果應該為雙精度,不能用int來定義變數。如果強制賦型會導致資料丟失:小數部分會丟失,只保留整數部分。
雙精度浮點數(double)是計算機使用的一種資料型別,使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字,其可以表示的數字的絕對值範圍大約是:2.
23x10-308 ~ 1.79x10308。ieee754為其定製標準。
c/c++程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執行環境大小不同。在32/64位系統中都是32位,範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。
參考資料
7樓:墨軒
double是雙精度實型數(小數),int為整型,%d是輸出有符號的十進位制數,%f輸出實型數(小數),%lf輸出doule型資料,當用int代替double時,會發生資料丟失,也就是說小數部分丟失,只留下整數部分,希望可以幫到你!
8樓:匿名使用者
不能用int替換
設f為33.0,(f-32)*5/9的值為0.55。即c的值為0.55
如果用int型別,不能帶小數點後的數,所以c的值為0,結果是錯誤的。
只有當f-32為9的倍數時,就可以用int代替,否則會因為有小數導致結果出錯。
double是能記錄帶小數點的資料,int只能是整數。如果將小數賦值給int型資料,如6.3賦值給int,值為6,小數後的值被刪去了。
在scanf裡面,輸入整數的格式是scanf("%d",&a);輸入double數的格式是scanf("%lf",&f);
9樓:匿名使用者
因為所有的計算機語言,每個型別都向更精確的方向去自動轉。比如說,int能自動轉double型,但是倒過來就不行,必須強制轉。
10樓:匿名使用者
double就是小數,int是整數,%f是浮點數佔位符,要換成int整型的,要寫%d 不能是%f
c語言裡,double和int在開頭都是定義嗎?有啥區別
11樓:匿名使用者
double表示的是浮點數, 範圍大,但值是近似值。
int只能表示整型。
定義的話, 最原始的c要求 所有變數都要在**塊開頭定義不過後來放寬了 現在幾乎所有的編譯器 都是可以在函式中間定義變數了。
C語言double和int有什麼區別,各個表示範圍是多少,d
區別 double雙精度浮點數,就是有小數點的數,並且範圍大於intint整型,只能表示整數 它們的範圍隨著機子不同而不同,如在32位機子和64位機子,它們是不同的。32位機int 2 31 2 31 和64位機int是不同的。double可以表示負數 它們是不同的區別 double雙精度浮點數,如...
C語言double和int有什麼區別?各個表示範圍是多少
double是雙精度實型數 小數 int為整型,整型 signed int 2147483648 2147483648,雙精度double 1.7 x 10 308 1.7 x 10 308 1 int 有符號整數,根據系統 編譯器 不同,有不同的範圍,16bits系統 dos系統 2 15 到 2...
c語言主函式中任意輸入double型別的數值abc。然後呼叫自定義函式
這出題的老師,連一元二次方程 二元一次方程都混起來了。include include void fun double a,double b,double c if d 0 else int main include include 計算並輸出一元二次方程的根 void fun double a,do...