打印

AVR的一段注释

[复制链接]
1885|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梦爱琴所|  楼主 | 2011-7-15 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Seg7_Led_float(float data)
{
unsigned int temp;
/*
重要说明:data+=0.00001;其中0.00001为容错值
解决float数据类型在计算机内部存储的误差问题,可以解决显示问题
但是会引入新的计算误差,如果精度要求大于0.00001建议更改容错值或者将此处注释掉
*/
data+=0.00001;
point=1;

注释啥意思啊???大家知道的给个说法哈

相关帖子

沙发
老鱼探戈| | 2011-7-15 17:42 | 只看该作者
没有上下文,不好说明;
可能是为某个变量引入补偿值。

使用特权

评论回复
板凳
梦爱琴所|  楼主 | 2011-7-15 23:47 | 只看该作者
就是不懂“补偿值”有什么作用哦??功能是用四个数码管显示浮点数

使用特权

评论回复
地板
dqyubsh| | 2011-7-16 10:03 | 只看该作者
如果用四个数码管显示浮点数,刚好显示的是0.xxxx,那么小数点后第四位是进位的,在第五位加上1(0.00001),可能跟进位有关系。就是说,0.00005不一定能进位成0.0001,具体你在所用的系统试验一下。

或者说,即便进位正确了,如果测量结果是0.000049,表头显示是0.0000,这样用户也不干,觉得明明有输入,干嘛不给显示啊,跟没输入一样!于是,就给显示个0.0001,哈哈。

浮点是近似表示,粗略的,不精确的,累加或者累减都会有误差。这个误差可能是累积误差,不了解程序,猜测。

使用特权

评论回复
5
qin552011373| | 2011-8-29 10:20 | 只看该作者
完整的程序发来看看,这么点也不好妄自推测

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

480

帖子

2

粉丝