android中怎么把float转换成Int

android中怎么把float转换成Int,第1张

1、采用强转的方式

float a = 11L; //定义一个float型变量,变量名为a,值为11,L表示是浮点型

int b = (int)a;//用(int)强制转换为整型b

2、采用Mathround方式

float a = 11L; //定义一个float型变量,变量名为a,值为11,L表示是浮点型

int b = Mathround(a);//采用round方式转换为整型

方法一: 使用stringstream

 stringstream在int或float类型转换为string类型的方法中已经介绍过, 这里也能用作将string类型转换为常用的数值类型。

#方法二:使用atoi()、 atil() 、atof()函数 -----------------实际上是char类型向数值类型的转换

注意:使用 atoi 的话,如果 string s 为空,返回值为0则无法判断s是0还是空

C语言整型使用原码、反码、补码进行编码,而浮点型使用IEEE754进行编码,所以强制转换基本上是没有任何意思的,因为编码格式不一样。

正确的作法是使用c语言标准库中的floor和ceil函数来进行向下或者向上取整。比如:#include <stdioh>

#include <mathh>

int main()

{

double d = 11;

int up = ceil(d);

int down = floor(d);

printf("up=%d\tdown=%d\n", up, down);

return 0;

}结果:up=2

down=1

#include<stdioh>

//#include<mathh>

int main()

{

int i;

int i2;

int siz;

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

siz=sizeof(P);//打印出数组P的字节数

printf("sizeof=%d\r\n",siz);

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

{

printf("P[intp]=%d\r\n",floor(P[i]));//打印出P数组的每一个元素值,以int型显示

}

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

{

printf("P[floatp]=%f\r\n",P[i2]);//打印出P数组的每一个元素值,以float型显示

}

}

#include<stdioh>

#include<mathh>

int main()

{

int i;

int i2;

int siz;

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

siz=sizeof(P);//打印出数组P的字节数

printf("sizeof=%d\r\n",siz);

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

{

printf("P[intp]=%d\r\n",floor(P[i]));//打印出P数组的每一个元素值,以int型显示

}

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

{

printf("P[floatp]=%f\r\n",P[i2]);//打印出P数组的每一个元素值,以float型显示

}

}

好像VC++60运行的结果只有强制转换有用,不知道是不是我写的语句有问题

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12157717.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存