當前位置:首頁 » 編程語言 » c語言如何把浮點型變為整型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言如何把浮點型變為整型

發布時間: 2022-05-29 05:37:26

A. c語言:浮點數變為整數的一個疑惑

因為你的a做了顯式轉換也還是有浮點數的形式的,但值確實是變成3了,關鍵在於雙精度浮點數和整型數的差別和printf函數採用的棧輸出結構;浮點型的位數比整型高,所以a輸入進去以後,有效位數較雙精度浮點數較小,因此存在著一堆0值,如:00000000003.1428570000,00000000000003,然而在讀時你採用整型,根據編譯器的差別可能只讀前8位或前四位,你這個數前面那麼多0,%d讀出來的肯定也是0嘛。其次,int(a)是c++的整型析構函數((int)a才是強制轉換(我說的顯示轉換)),作用是直接提取a的整數部分,用這個做浮點數取整還准確一些,推薦用int(a)以%d輸出即可。

B. C語言浮點型轉整型

http://..com/question/23899742.html?fr=ala0
這個應該是數據結構的問題。
在K&RC下,float值用於表達式或用作參數前,會自動轉換成double類型。而ANSI C一般不會自動把float轉換成double。有些程序已假定其中的float參數會被轉換成double,為了保護大量這樣的程序,所有printf()函數的float參數還是被自動轉換成double型。
只要你輸入的數載float的范圍內,那麼轉化為double型後,這個數據在內存中的二進制的低位部分(就是後面的部分)都是0。而這個數據是放進棧里的,所以按%d格式讀取的時候,只讀取後面的4個位元組的數據,所以出現都為0,你試試在輸入的時候多輸幾位小數,比如輸入1.23456等,值就不為0了,為一個很大的數字,很可能為負數。

C. C語言浮點型轉換為整型怎麼轉換的

C語言有以下幾種取整方法:
1、直接賦值給整數變數。如:
int i = 2.5; 或 i = (int) 2.5;
這種方法採用的是捨去小數部分,能用於你的問題。
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);//四捨五入

D. C語言中float型轉換成int型是什麼規則

#include<stdio.h>

#include<math.h>

int main()

{

int i;

int i2;

int siz;

float P[14]={0,1,2,3,1,1,5,1,2.3,6.1,500,130,5,0};

siz=sizeof(P);//列印出數組P的位元組數

printf("sizeof=%d ",siz);

for(i=0;i<14;i++)

{

printf("P[intp]=%d ",floor(P[i]));//列印出P數組的每一個元素值,以int型顯示

}

for(i2=0;i2<14;i2++)

{

printf("P[floatp]=%f ",P[i2]);//列印出P數組的每一個元素值,以float型顯示

}

}

好像VC++6.0運行的結果只有強制轉換有用,不知道是不是我寫的語句有問題

E. C語言中如何實現將一個浮點數float轉成int類型

強制類型轉換
比如:
float a = 10.5;
int b = (int)a;
這樣 就轉換了,但是不推薦高精度轉低精度 會丟失精度的
就像這個,a是10.5 轉換後變成10了小了太多

F. C語言中,浮點型數據V,將其轉化成整型num,用什麼語句

只能通過內存COPY,如果強製做類型轉換的話,會丟掉數據

比如

doublef=1.2;

intnum=(int)f;//這種方式會得出num==1,小數部分被丟棄

真正的做法是這樣的:

#include"stdio.h"

#include"string.h"

voidmain()

{

floatv=12.3;

intnum;

memcpy(&num,&v,sizeof(num));

printf("%d ",num);

}

這樣,浮點數v在內存中各二進制位上的數字全被COPY到num變數的各位上,再把他變成整數輸出

你會發現是個很大的數,這個又涉及到浮點數在計算機中的表示方法,這個你可以去找相關資料看下就明白了

G. 在C語言中,如何將一個浮點數變換成整數

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

H. C語言關於整型和浮點型的轉換求助

c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值

I. 在C語言中浮點型怎麼轉整形不用庫函數

強制轉換就可以了,比如
float a;
int i;
a=22.333;
i=(int)a;

J. C語言中把浮點型數據該為正數

float n;
可以這樣int(n);就變成整數了。要保留兩位的話,用printf("%.2f",n);