搜索
bottom↓
回复: 6

请教 有关PIC18 浮点误差

[复制链接]

出0入0汤圆

发表于 2016-6-13 06:11:54 | 显示全部楼层 |阅读模式
请教 有关PIC18 浮点误差最近用PICC 9.66 ,
  设为  long  double  xx
         u32   yy;
           xx=0.12345678;
          xx*=100000000;
         yy=(u32) xx;

   然后 显示yy  ,发现等于  12345732  ,与原来的数有 百万分之 3的误差,请问 这是为何呢?  编译中 已用32bit的浮点

出0入93汤圆

发表于 2016-6-13 09:08:13 | 显示全部楼层
你要知道,32位浮点数表示的数据范围有多大?因此不可能一一映射,只能近似。
要想精度高,请使用定点算法。

出0入0汤圆

发表于 2016-6-13 09:52:43 | 显示全部楼层
单精度数只能保证7位有效位,误差也就在百万分到千万分这个段,两个单精度相乘误差限在百万分就很正常了。

出0入0汤圆

 楼主| 发表于 2016-6-13 21:14:06 | 显示全部楼层
tam2907 发表于 2016-6-13 09:52
单精度数只能保证7位有效位,误差也就在百万分到千万分这个段,两个单精度相乘误差限在百万分就很正常了。 ...

哦  明白了!正好我这个是百万分之几的误差! 谢谢啊

出0入0汤圆

 楼主| 发表于 2016-6-13 21:14:38 | 显示全部楼层
takashiki 发表于 2016-6-13 09:08
你要知道,32位浮点数表示的数据范围有多大?因此不可能一一映射,只能近似。
要想精度高,请使用定点算法 ...

您好 ,请教 怎样用定位计算呢?

出0入12汤圆

发表于 2016-6-23 07:00:21 | 显示全部楼层
hyf88 发表于 2016-6-13 21:14
您好 ,请教 怎样用定位计算呢?


简单的说就是都 scale 到你能容忍的精度,例如,原来计算 3.14 的,计算过程都按 up scale 到 314 计算,结果再 down scale 到百分之一。

出0入0汤圆

 楼主| 发表于 2016-7-27 07:09:15 | 显示全部楼层
abutter 发表于 2016-6-23 07:00
简单的说就是都 scale 到你能容忍的精度,例如,原来计算 3.14 的,计算过程都按 up scale 到 314 计算, ...

哦  谢谢啊!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 00:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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