1樓:匿名使用者
在c語言中,long 型在32位下,長度為4位元組,表示範圍為-2147483648~2147483647
在64位下為8位元組,範圍為-9223372036854775808~9223372036854775807
也就是9.2e18
而float 範圍是 -3.4e-38 和 3.4e+38
明顯,不論哪種long資料轉為float的時候都不存在溢位的情況,唯一問題就是精度丟失。
所以 long轉為float就是按值轉換,通過降低精度的方式,把值賦值給float。
2樓:稱怡屈從冬
直接用(float)a轉換,只是精度會有下降,在32位系統中float有1個符號位+8個2的冪次位+23個精度位=32位,long有1個符號位+31個精度位=32位,有效數字會有損失。
c語言浮點型轉換為整型怎麼轉換的?
3樓:匿名使用者
第一種是bai利用系統預設的轉換,du即將小數部分zhi截去dao,僅保留整數部分回,如3.6轉換答為3,-5.68轉換為5。
第二種是強制型別轉換,效果與第一種相同,如(int)(-6.666)為-6。
如有其他特殊要求,則需要程式設計解決。
4樓:匿名使用者
c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值
5樓:匿名使用者
float ftemp;
不要後面bai
的=0;因為一旦你分配du給ftemp了值,它zhi是無法通過dao鍵盤寫入的方式賦給
回的,因為空答間已經被占用。這不是a=b+c這樣表示式的賦值。
暈,難道要我把源**給你你直接複製?
那就給你吧!
#include
void main()
隨便輸入乙個數,然後回車,看結果
6樓:程式猿3號
c語言復有以下幾種取整方法:
1、直接制賦值給整bai
數變數。如:
int i = 2.5; 或 i = (int) 2.5;
這種du方法採用的zhi是捨去小數部分,能dao用於你的問題。
2、c/c++中的整數除法運算子「/」本身就有取整功能(int / int),而下面介紹的取整函式返回值是double。整數除法對正數的取整是捨去小數部分,能用於你的問題。不過整數除法對負數的取整結果和使用的c編譯器有關。
3、使用floor函式。floor(x)返回的是小於或等於x的最大整數。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函式。ceil(x)返回的是大於x的最小整數。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向負無窮大捨入,floor(-2.5) = -3;ceil()是向正無窮大捨入,ceil(-2.5) = -2。floor函式能用於你的問題。
5、int b = (int)a;//取整int c = (int)(a+0.5);//四捨五入
c語言中如何實現將乙個浮點數float轉成int型別?
7樓:紛舞年華
強制型別轉換
比如:float a = 10.5;
int b = (int)a;
這樣 就轉換了,但是不推薦高精度轉低精度 會丟失精度的就像這個,a是10.5 轉換後變成10了小了太多
c語言中float資料轉換成short資料,如題
8樓:gta小雞
寫錯了,是(short)ffloat,表示將ffloat強制轉換為short型。short型為2位元組16位,範圍-32768~32767,70000已經超出上界,發生上溢,需要減掉65536,7000-65536=4464。4464在short範圍內,所以最終值就是4464。
c語言中將乙個浮點型賦值給整型時,會不會四捨五入?
9樓:幻翼高達
c語言中將乙個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的資料,也可以認為是執行了下取整運算。
將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:
賦值時的型別轉換實際上是強制的。
例如執行賦值後,無論5.4還是5.6都會變成5。
10樓:_夢幻陽光
不會的,不過可以寫乙個函式自己轉換啊
#include
int fun(float x)
int main()
列印的為3和4,c語言很靈活的,樓主想要什麼幾乎都能實現
11樓:匿名使用者
不會的,如int x; 如果有 x=4.78; 則x的值是4
12樓:匿名使用者
不會,後面的小數就直接沒了,只有整數部分了
採納我哦
13樓:匿名使用者
不會的啦,整型的話,1/2=0,而不是0.5或者1,但整型變成浮點型要強制型別轉換,不知這麼解釋明白不。?
14樓:龍__鳳
不會的,看程式的執行結果:
15樓:路過
你好,不會的。浮點型資料賦給整型時,浮點型就會被自動轉換成整型,整型只是整數部分。
希望能夠幫到你。
16樓:匿名使用者
不會,一般是給你強轉成整形了,小數字就沒了,四捨五入是不存在的
17樓:匿名使用者
不會,只會把整數部分賦給整型變數
18樓:匿名使用者
不會,比如float a=4.45 那麼 printf("%d",a);輸入為4,直接把小數點後面的數刪去,不是四捨五入
c語言中,如何把結果int轉化為float,以5為例?
19樓:
用型別轉換運算子 運算子形式是這樣的 (型別)
例如 int a=5;
float b=(float)a ;
20樓:匿名使用者
#include
int main(int argc, char *argv)進行抄一次bai
強制du
轉換zhi
就daook
21樓:匿名使用者
直接型別轉換即可。
int i=5;
float t=(float)i;
22樓:匿名使用者
int可以直接轉換成float,如 int a = 5; float b = (float)a;
23樓:匿名使用者
int a=5;
floag b=(float)a;
24樓:匿名使用者
用的時候前面加%f即可
25樓:匿名使用者
直接賦值給float變數就可以了
26樓:傲虎
float t=(float)5;
c語言中關於long和float兩種資料型別
27樓:三號床鋪的四哥
long和float兩種資料型別軍師c語言中常見資料型別:
long資料型別
1.long 是c語言的乙個關鍵字,代表一種資料型別,中文為長整型。
2. long是long int的簡寫,也就是說,在c語言中long int型別和long型別是相同的。
3. long型可以表示的整型數字範圍為-2,147,483,648 ~ 2,147,483,647, 即-2^32 ~ 2^32-1
5.在用在c的格式化輸入輸出時,long型的格式化字元為"%ld"。
float資料型別
1.float是c語言中的乙個資料型別的關鍵字,表示單精度浮點型(雙精度浮點型為double)。
2.定義格式為:float a; // a表示乙個浮點型的變數
3.c語言規定浮點型在記憶體占用4個位元組,精度為7位,取值範圍為:3.4*10^-38 ~3.4*10^38或者-(3.4*10^-38 ~3.4*10^38)
28樓:深海魔龍
float 是浮點型 你以%f 格式輸出 即使 帶小數點 精確到小數點以後幾位輸出了, long 是長整形 即使 以整數格式輸出了 所以不一樣啊
29樓:
你前面那個圖,接收長整形資料的時候應該是%ld,不是%l
30樓:匿名使用者
#include
void main()
31樓:匿名使用者
難道你以為輸出格式就是%+首字母?long用%d輸出的。。
c語言中如何將short,int,long,float這些型別的數值轉換為字串?
32樓:匿名使用者
可以使用sprintf函式轉換。
1、對於整型,各個平台有一些函式可以專門轉換,比如itoa等。
不過更通用的做法是使用sprintf函式。
2、宣告:
int sprintf(char *dst, const char *format_string, ...);
標頭檔案為stdio.h。
3、功能:
sprintf是乙個不定引數函式,根據format_string中提供的格式符,將後續引數轉為字串儲存在第乙個引數dst中。
4、使用示例:
short a=1;
int b=2;
long c=3;
float d=4;
char buf[100];
sprintf(buf, "%hd %d %ld %f",a,b,c,d);//按照格式,將四個變數儲存在字串中。
執行後,buf中字串為"1 2 3 4.000000"。
格式字串使用方法與輸出函式printf相同。
33樓:匿名使用者
這些都是 整數 型的,所以把每一位拿出來放到char陣列裡面就好#include
#define len 20
int main()
for(i=0; i
34樓:匿名使用者
int i = 105:
char str[100] = ;
sprintf(str, "%d", i);
其他型別變數的方法類似
35樓:匿名使用者
用sprintf函式即可。例如
char s[20];
short a=35;
sprintf(s,"%d",a);就把s的值賦為「35」了。
c語言中float型資料表示的最大數字到底是多少啊?
36樓:仁昌居士
c語言中float型資料表示的最大數字為3.402823e38。
float資料型別用於儲存單精度浮點數。
回具有4個位元組,包括一答個符號位、乙個8位二進位制指數和乙個23位尾數。由於尾數的高順序位始終為1,因此它不是以數字形式儲存的。此表示形式為float型別,提供了乙個在-3.402823e38到3.402823e38之間的範圍。
37樓:匿名使用者
float型別所能表示的最大數字為3.4*10^38,即3.4e38。
float是c語言中的乙個資料型別的關鍵字,表示單精內度浮點型(雙精
容度浮點型為double)。
定義格式為:
float a; // a表示乙個浮點型的變數c語言規定浮點型在記憶體占用4個位元組,精度為7位,取值範圍為:3.4*10^-38 ~3.
4*10^38或者-(3.4*10^-38 ~3.4*10^38)
38樓:匿名使用者
我們的老譚的c教材上說float型資料的範圍是-3.4×10的-38次方至3.4×26位尾數中有乙個符號位也就是最大的數是+/-(2^25-1)*(+/-2^5-1,
39樓:呆
其實這幾種說法都沒有錯.不過2^104*(2^23 -1 )貌似應該是2^104*(2^24 -1).然後2^128和3.4e+38都是估計值
最好是你自己回看一下ieee754標準.
網上不答好搜的話可以看《深入理解計算機系統》第二版第二章的2.4.2小節,講的很詳細.
另外,指數的範圍是-126~+127.具體原因也是自己去看書.
內容不多,兩三頁紙,但是只靠我打字太難說明白
40樓:匿名使用者
表示有壓力,靜觀高手賜教
C中,int型資料位址強制轉換成char型再列印出來為什麼是反向的
舉個例子來說吧,假設32位整型int a 0x56781234 而 a 0x80000000,則記憶體中的位元組儲存順序是 0x80000000 0x04 0x80000001 0x03 0x80000002 0x02 0x80000003 0x01 0x80000004 0x08 0x800000...
c怎麼把字元轉換成數字C,怎麼把字元轉換成數字
一 可以用c 的stringstream。主要原因是操作簡單。數字轉字串,int float型別 同理 字串轉數字,int float型別 同理 二 使用sprintf 函式 char str 10 int a 1234321 sprintf str,d a char str 10 double a...
c語言如何把整型轉換成浮點數,C語言如何把整型轉換成浮點數?
程式猿3號 c語言有以下幾種取整方法 1 直接賦值給整數變數。如 int i 2.5 或 i int 2.5 這種方法採用的是捨去小數部分,能用於你的問題。2 c c 中的整數除法運算子 本身就有取整功能 int int 而下面介紹的取整函式返回值是double。整數除法對正數的取整是捨去小數部分,...