C语言中的浮点到无符号整数

C语言中的浮点到无符号整数,c,casting,C,Casting,目前我正在使用DHT11传感器测量房间的温度和湿度。DHT传感器以浮点形式输出这些值,但是,我希望以整数形式发送值(例如,24.3度为24度)。我很难找到这样做的方法 我之所以要求使用无符号整数,是因为DHT的范围是0到50摄氏度,不需要有符号整数试试: float x = 24.3 ; unsigned int y; y = (unsigned int) x; 对于-ve值,unsigned int n=static_cast(static_cast(-1.3))可以帮助你怎么样?你甚至在谷

目前我正在使用DHT11传感器测量房间的温度和湿度。DHT传感器以浮点形式输出这些值,但是,我希望以整数形式发送值(例如,24.3度为24度)。我很难找到这样做的方法

我之所以要求使用无符号整数,是因为DHT的范围是0到50摄氏度,不需要有符号整数

试试:

float x = 24.3 ;
unsigned int y;
y = (unsigned int) x;

对于-ve值,
unsigned int n=static_cast(static_cast(-1.3))
可以帮助你

怎么样?你甚至在谷歌上搜索过“c铸造浮点到整数”吗?在这个问题的标题中,你要求铸造到无符号的整数,但是温度,如果以摄氏度或华氏度测量,可能会有负值。是的,但是,dht11的范围是0到50摄氏度。“DHT传感器将这些值作为浮点输出…”DHT11输出5个8位字段(2个用于湿度,2个用于温度,1个用于奇偶校验)。每对由一个整数字节和一个分数字节组成。您所需要做的就是忽略分数字节(如果>=0x80,则对整数字节进行四舍五入)。浮点和它有什么关系?为什么要使用无符号?这是OP的要求!嗯,测量湿度没关系,但温度(即使在房间里)可能是负数(摄氏度或华氏度).@MuhammadFaizanUddin你的编辑在摄氏度下是无效的,无论如何,即使华氏度可能是负数,问题是“浮到摄氏度的无符号整数”,这对我来说似乎是一个正确的答案。@KeineLust很公平,这是OP的问题。