独闷闷网

 找回密码
 立即注册
搜索
查看: 3304|回复: 1
打印 上一主题 下一主题
收起左侧

[原创] 在单片机C语言中如何把带小数点的计算转换成不带小数点的计算?已解答。

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-15 10:56:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2014-12-4 18:44 编辑

鸿哥解答:
在单片机的C语言中,我建议大家以后的计算尽量不要用小数点,因为你不知道编译器它内部是怎么处理小数点的。
unsigned long a;
比如a=a*1.6;
我一般是这样改:
a=a*16/10;


注意,这样转换的时候,参与运算的变量尽量用long类型,因为long类型的数据长度最长。如果运算超过了这个long类型的长度,请自己额外编写大数据运算算法,具体请参考我的连载文章《从业将近十年!手把手教你单片机程序框架》第62,63,64,65节。http://www.dumenmen.com/forum.php?mod=viewthread&tid=8
乐于分享,勇于质疑!
沙发
发表于 2014-9-15 11:21:12 | 只看该作者
一个很小的细节问题,受教了
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-4-23 21:21 , Processed in 0.187404 second(s), 16 queries .

快速回复 返回顶部 返回列表