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

2021-03-27 18:09:54 字數 5628 閱讀 8154

1樓:匿名使用者

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

int只能表示整型。

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

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

2樓:匿名使用者

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

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

double可以表示負數

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

3樓:南北浮生

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。

參考資料

4樓:墨軒

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

5樓:匿名使用者

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

6樓:匿名使用者

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

7樓:匿名使用者

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

在c++中定義時int和double有何區別

8樓:大野瘦子

1、型別不同

int 和 double 雖然都是基本資料型別,但 int 是整形, double 是浮點型。

2、在計算中的儲存方式不同

int在32位計算機中佔4個位元組,這4個位元組的在記憶體中存放的順序為低位元組存在低位址,高位元組存在高位址。

double是64位的,在儲存方式上都是遵從ieee的規範,其遵從的是 ieee r64.53。

c\c++中int、double等資料型別範圍的理解

例項**:

short sia = -32760;

short sib = (-32760 + 32768) % 65536 - 32768;

printf("not overflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = -32769;

sib = (-32769 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = 32768;

sib = (32768 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

執行結果:

說明:1、在賦值操作時,如sia = -32769,-32769是先作為乙個常量值存放在記憶體中,這個數值是沒有越界的概念的,就是二進位制值,只是在賦值操作時才進行了對應的資料轉換;

2、從執行結果可見,該處理機制對資料溢位和不溢位得到的結果都是適用的;

3、聯想資料閉環迴圈,如程式中32768,超過short型上限,其溢位乙個數,作為乙個資料閉環,則直接跳轉到了-32768,也就是short型下限值。

9樓:匿名使用者

int 和 double 都是基本資料型別, int 是整形, double 是浮點型。

1.int 型變數佔用的儲存空間和機器字一樣大,即 32位系統中是 4個位元組; 64位系統中是 8個位元組;

而 double 型變數 一般佔用8位元組,double 型變數佔用的儲存空間不會小於 int 型變數。

2.double 型表示的值範圍要比 int 表示的值範圍大,且從 double 值轉換到 int 值,會進行四捨五入,從而有精度損失。

擴充套件資料

一整形1.整形有char、short、int、long、long long,這5個也預設為signed xx ;

規則:short至少16位;int至少和short一樣;long至少32位,且至少和int一樣長;long long至少64位,且至少和long一樣長。

其中,後面4個都有無符號變體。unsigned short、unsigned int、unsigned long、unsigned long long.

注意,unsigned本身是unsigned int的縮寫。

可以看到,在32位和64位計算機上,對於整形唯一不同的就是int和指標的大小,其中32位計算機上int佔2位元組,64位上佔4位元組。指標大小和int大小相同。

2.wchar_t

char是8位字元型別,最多只能包含256種字元,許多外文字符集所含的字元數目超過256個,char型無法表示。

wchar_t資料型別一般為16位或32位.

總之,wchar_t所能表示的字元數遠超char型。

標準c++中的wprintf()函式以及iostream類庫中的類和物件能提供wchar_t寬字元型別的相關操作。

3.++11新增型別:char16_t和char32_t

char16_t:16位無符號->字首u表示

char32_t:32位無符號->字首u表示

二、浮點型

浮點有3個,float、double、long double

規則:float至少4位元組;double至少6位元組,且不少於float;long double至少和double一樣多。

通常float32位,double64位,long double80、96或128位。我在vs2013上測到long double位64位。

參考資料

10樓:小澈

在c++中,int和double有以下幾個區別:

1、型別區別:

int是定義的整型資料,如int a 則a的值只能是整型,比如a=3。

double雙精度浮點數,就是有小數點的數。

2、在計算中的儲存方式:

int在32位計算機中佔4個位元組,這4個位元組的在記憶體中存放的順序為低位元組存在低位址,高位元組存在高位址。

double是64位的,在儲存方式上都是遵從ieee的規範,其遵從的是 ieee r64.53。

在記憶體中的儲存主要分成三部分,分別是:

符號位(sign):0代表正數,1代表負數

指數字(exponent):用於儲存科學計數法中的指數部分,並且採用移位儲存方式

尾數字(mantissa):用於儲存尾數部分

3、表達範圍:

int:在32/64位系統中都是32位,取值範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

double:有效數字為15-16,數值範圍為-1.7*10(-308)~1.7*10(308);

11樓:匿名使用者

int是一種型別——整數型別,例如:1,2,3,~~~

double也是一種型別——雙精度浮點數型別,例如:1.203156

12樓:沒有響應

int是整數 double是浮點數也就是有小數點的書

13樓:匿名使用者

int代表只能是整數,double是雙精度浮點數u,也就是小數

14樓:

定義時為int分配4個位元組儲存整數(32位),8個位元組給double儲存實數

c語言裡double int float 有什麼區別

15樓:大波浪長頭髮

都是變數型別

int為整型變數

float是浮點型在記憶體中佔用4個位元組,預設小數字6位double雙精度浮點型佔用8個位元組,預設小數字16位

在c語言中int和double怎麼轉換?

16樓:很多很多

1、開啟baivc軟體,新建乙個空白的vc專案文du件:

2、編寫轉換zhi程式,首dao先新增標頭檔案,在main主函式回中定義int型別變數答sum,count,再定義double型別變數todouble,並進行強制型別轉換,強制轉換的格式就是括號加要轉換的型別,最後使用printf列印結果:

3、編譯執行程式,檢視轉換的結果。以上就是c語言中int和double轉換的操作步驟:

17樓:匿名使用者

使用強制型別轉換抄,就是要轉換的類襲型,加個括號。

int ia;

double da;

ia=1234;

da=(double)ia;

//這樣da就等於1234.00

da=12.34567;

ia=(int)da;

//這樣ia就等於12,問題是這種轉換會損失精度,小數部分被擷取還可以接受,如果double超出了int的最大值,高出部分的位數也會被截掉,那就是災難性的了,所以一般不做這種轉換,除非你對待轉換的資料大小心中有數。

C語言中double和int型的資料之間可相互賦值

可以。如 double a 1.2 int b b a b 1 取整了 int a 1 double b b a b 1.00000 1 double 雙精度浮點型 是計算機使用的一種資料型別。比起單精度浮點數 float double 雙精度浮點數 使用 64 位 8位元組 來儲存乙個浮點數。2 ...

c語言中int型與double型能進行換算加減乘除嗎

能進bai行,不會錯,系統實際會把du參加運zhi算的所有變數轉換為double後進dao行計算專,只要表示式屬裡面有乙個float或者double的量,例如 int i 1 float x 5,y y x i 執行的時候系統會把x和i都轉換為double進行計算,最後的結果再儲存為y的double...

關於c中double轉int的問題,為什麼會少

用math下面的函式 double d1 1.1d int i1f int math.floor d1 1int i1c int math.ceiling d1 2 int i1r int math.round d1 1double d9 1.9d int i9f int math.floor d9...