C語言double和int有什麼區別,各個表示範圍是多少,d

2021-03-22 05:32:50 字數 5345 閱讀 9702

1樓:楊維偉哥

區別:double雙精度浮點數,就是有小數點的數,並且範圍大於intint整型,只能表示整數

它們的範圍隨著機子不同而不同,如在32位機子和64位機子,它們是不同的。32位機int(-2^31 ~ 2^31)和64位機int是不同的。

double可以表示負數

2樓:

它們是不同的區別:double雙精度浮點數,如在32位機子和64位機子。32位機int(-2^31 ~ 2^31)和64位機int是不同的,就是有小數點的數,並且範圍大於intint整型,只能表示整數它們的範圍隨著機子不同而不同

c語言double和int有什麼區別,各個表示範圍是多少,double可以表示負數嗎

3樓:匿名使用者

區別:double雙精度浮點數,就是有小數點的數,並且範圍大於intint整型,只能表示整數

它們的範圍隨著機子不同而不同,如在32位機子和64位機子,它們是不同的。32位機int(-2^31 ~ 2^31)和64位機int是不同的。

double可以表示負數

c++ double 可以表示負數嗎?

4樓:匿名使用者

double型別的取值範圍:

負值取值範圍為 -1.79769313486231570e+308 到 -4.94065645841246544e-324

正值取值範圍為 4.94065645841246544e-324 到 1.79769313486231570e+308

所以,很明顯double 可以表示負數

c語言的double 和int的區別,%d和%f的區別

5樓:南北浮生

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。

參考資料

6樓:墨軒

double是雙精度實型數(小數),int為整型,%d是輸出有符號的十進位制數,%f輸出實型數(小數),%lf輸出doule型資料,當用int代替double時,會發生資料丟失,也就是說小數部分丟失,只留下整數部分,希望可以幫到你!

7樓:匿名使用者

不能用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);

8樓:匿名使用者

因為所有的計算機語言,每個型別都向更精確的方向去自動轉。比如說,int能自動轉double型,但是倒過來就不行,必須強制轉。

9樓:匿名使用者

double就是小數,int是整數,%f是浮點數佔位符,要換成int整型的,要寫%d 不能是%f

double和int都是隻能表示正數嗎?c++

10樓:我愛超夢

不是,可以將負數賦值給int或者double型的變數

11樓:一顆程式猿

當然不是,可以表示負數

12樓:匿名使用者

可以表示負數啊~~~又不是unsigned的

13樓:匿名使用者

不是……unsigned int只能表示正數……

c語言double和int有什麼區別?各個表示範圍是多少?

14樓:蛙家居

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型,但是倒過來就不行,必須強制轉。

15樓:匿名使用者

區別:double雙精度浮點數,就是有小數點的數,並且範圍大於intint整型,只能表示整數

它們的範圍隨著機子不同而不同,如在32位機子和64位機子,它們是不同的。32位機int(-2^31 ~ 2^31)和64位機int是不同的。

double可以表示負數

c語言裡,double和int在開頭都是定義嗎?有啥區別

16樓:匿名使用者

double表示的是浮點數, 範圍大,但值是近似值。

int只能表示整型。

定義的話, 最原始的c要求 所有變數都要在**塊開頭定義不過後來放寬了 現在幾乎所有的編譯器 都是可以在函式中間定義變數了。

c語言中int,float,double,char四種資料型別所能表示的資料範圍是多少?

17樓:小黑裙

資料範圍:

1、char        1位元組

2、short       2位元組

3、int         4位元組

4、long        4位元組

5、long long   8位元組

6、float       4位元組

7、double      5位元組

8、long double 12位元組

18樓:匿名使用者

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)

float, double是浮點型和雙精度型,表示小數,區別是精度不同。

float為單精度浮點型,能準確到小數點後六位,3.4 x 10^(-38)~ 3.4 x 10^(+38)

double為雙精度浮點型,能準確到小數點後十二位,1.7 x 10^(-308)~ 1.7 x 10^(+308)

char為單位元組字元型,-(2^7)到2^7-1即-128到127。如果是無符號字元unsigned char,那麼是0到2^8-1即0到255

希望採納

c語言 有關double型取值範圍的問題

19樓:金色潛鳥

double型取值範圍 查你的編譯器的標頭檔案 float.h#define dbl_epsilon 2.2204460492503131e-016 -- 最小解析度

#define dbl_max 1.7976931348623158e+308 -- 最大值

隨編譯器和機器而變。

程式運算過程中的範圍有限制。例如 i*i 允許的 i 就很小了。

同樣,double 運算,也會縮小 a 的允許範圍。

20樓:宛丘山人

1.浮點數賦初值最好採用:result=0.0

2.格式符l用於長整形,也可用於d,o,x,u前面,但用在f前面無效,所以你的輸出還是浮點數的標準格式。

3.f格式符用來輸出實數,以小數形式輸出,因為你沒有指定欄位寬度,所以按系統自動指定,使整數部分全部如數輸出,並輸出6位小數。應當注意,並不是輸出的都是有效數字,的精度的有效數字是7位有效數字,雙精度是15位有效數字,只輸出6位小數。

這就是你輸出小數總是6位的原因。你說的總是精確到小數後6位是不對的,因為輸出的數不一定是準確的。

4.指定輸出格式的方法是:%m.nf。你那個lf是沒用的。意即輸出的資料共佔m列,其中有n位小數。如果總長不足m,則左端補空格,即向右靠齊。

5.如想向左靠齊,則用格式:%-m.nf。

你試一下看,這些譚浩強的《c程式設計》第1版講得很清楚,你可以找來看看。

21樓:空雪夢見

用%g就可以去掉後面一堆0。對於double來說,取值可以到1後面300個0那麼大,不過這不重要,重要的是「有效數字」,double更重要的是「有效數字」(和數學上的有效數字意思相同):52位二進位制數,差不多15個十進位制數字

22樓:匿名使用者

大概是這樣。

具體double的取值請查書去。。反正是個非常大的範圍。

至於輸出結果是六位小數,那顯然不是double的範圍。是printf的問題,人家預設輸出六位小數。你加些引數就會瞬間大好多。

比如 %20.15lf ,就是15位小數了。還可以加個什麼玩意弄成科學計數法什麼的好像

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語言裡int與double是怎麼回事剛學

int 是整型變數 抄,double是雙精度浮點型 你這個計算,最好定義r,s,l用float或者double 否則,計算表示式3.14 r r相當於3 int r int r,變數會被捨棄小數取整再計算 不是四捨五入 include include int main int是整型,抄double是...

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...