hyf88 发表于 2016-6-13 06:11:54

请教 有关PIC18 浮点误差

请教 有关PIC18 浮点误差最近用PICC 9.66 ,
设为longdoublexx
         u32   yy;
         xx=0.12345678;
          xx*=100000000;
         yy=(u32) xx;

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

takashiki 发表于 2016-6-13 09:08:13

你要知道,32位浮点数表示的数据范围有多大?因此不可能一一映射,只能近似。
要想精度高,请使用定点算法。

tam2907 发表于 2016-6-13 09:52:43

单精度数只能保证7位有效位,误差也就在百万分到千万分这个段,两个单精度相乘误差限在百万分就很正常了。

hyf88 发表于 2016-6-13 21:14:06

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

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

hyf88 发表于 2016-6-13 21:14:38

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

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

abutter 发表于 2016-6-23 07:00:21

hyf88 发表于 2016-6-13 21:14
您好 ,请教 怎样用定位计算呢?

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

hyf88 发表于 2016-7-27 07:09:15

abutter 发表于 2016-6-23 07:00
简单的说就是都 scale 到你能容忍的精度,例如,原来计算 3.14 的,计算过程都按 up scale 到 314 计算, ...

哦谢谢啊!
页: [1]
查看完整版本: 请教 有关PIC18 浮点误差