C語言中long型轉換成float型怎麼轉換,假如數字較大時

2021-03-29 12:58:23 字數 6548 閱讀 6487

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。整數除法對正數的取整是捨去小數部分,...