❶ 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);//四捨五入
❷ 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運行的結果只有強制轉換有用,不知道是不是我寫的語句有問題