首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nesC:将浮点数转换为整数

nesC:将浮点数转换为整数
EN

Stack Overflow用户
提问于 2014-02-03 18:32:16
回答 2查看 446关注 0票数 0

我想使用浮点数作为uint16的xor,如下所示:

代码语言:javascript
复制
uint16_t a=20000;
double r,x,xo;
r=3.8;
xo=.1;
x=(int) r*xo*(1-xo);
c=a^x;

当我运行测试时,会发生以下错误:

代码语言:javascript
复制
invalid operand to binary ^

如何将x转换为16位整数值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-25 12:16:10

问题是x仍然是一个双值。演员阵容

代码语言:javascript
复制
x=(int) r*xo*(1-xo);

截断这个数字,但它仍然是一个双数字。

要做您想做的事情,您需要在xor之前声明xint或强制转换:

代码语言:javascript
复制
c=a^((int)x);
票数 0
EN

Stack Overflow用户

发布于 2014-03-25 12:10:54

nesC是C的扩展,因此您可以将浮点数转换为整数,就像在C中使用强制转换一样。例如:

代码语言:javascript
复制
(int)(x+0.5)

请注意,这有其局限性,请参阅这里的更多详细信息:http://www.cs.tut.fi/~jkorpela/round.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21534935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档