c51单片机关于float型运算

floatvo;unsignedinti;vo=((cal[1]*256+cal[2])/1024*5)*900;i=vo*10;这样子能算吗?比如数组1的值是2,数组二... float vo;
unsigned int i;
vo=((cal[1]*256+cal[2])/1024*5)*900;
i=vo*10;
这样子能算吗?
比如数组1的值是2,数组二的值是132,算出是2830.078,float能存的下吗?
最终显示出来的值一直没变化,我总感觉计算式子有问题
展开
 我来答
张哥小技术
2016-11-30 · TA获得超过324个赞
知道小有建树答主
回答量:178
采纳率:87%
帮助的人:93万
展开全部
修改代码,在合适位置增加1.000*就可以了:

vo=( 1.000 * (cal[1]*256+cal[2])/1024*5)*900 ;
当然也可以直接把1024写成“1024.000”,不用加“1.000*”。
更多追问追答
追问
我试了,要改两个方面,第一个是你说的那种问题,第二个是去掉了最外面的大括号才行,不知道为什么?
虽然不影响运算顺序
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式