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