请教 有关PIC18 浮点误差
请教 有关PIC18 浮点误差最近用PICC 9.66 ,设为longdoublexx
u32 yy;
xx=0.12345678;
xx*=100000000;
yy=(u32) xx;
然后 显示yy,发现等于12345732,与原来的数有 百万分之 3的误差,请问 这是为何呢?编译中 已用32bit的浮点 你要知道,32位浮点数表示的数据范围有多大?因此不可能一一映射,只能近似。
要想精度高,请使用定点算法。 单精度数只能保证7位有效位,误差也就在百万分到千万分这个段,两个单精度相乘误差限在百万分就很正常了。 tam2907 发表于 2016-6-13 09:52
单精度数只能保证7位有效位,误差也就在百万分到千万分这个段,两个单精度相乘误差限在百万分就很正常了。 ...
哦明白了!正好我这个是百万分之几的误差! 谢谢啊 takashiki 发表于 2016-6-13 09:08
你要知道,32位浮点数表示的数据范围有多大?因此不可能一一映射,只能近似。
要想精度高,请使用定点算法 ...
您好 ,请教 怎样用定位计算呢? hyf88 发表于 2016-6-13 21:14
您好 ,请教 怎样用定位计算呢?
简单的说就是都 scale 到你能容忍的精度,例如,原来计算 3.14 的,计算过程都按 up scale 到 314 计算,结果再 down scale 到百分之一。 abutter 发表于 2016-6-23 07:00
简单的说就是都 scale 到你能容忍的精度,例如,原来计算 3.14 的,计算过程都按 up scale 到 314 计算, ...
哦谢谢啊!
页:
[1]