關於pow的用法

2020-01-30 14:15发布

請問 i 的數值是多少?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
清雨影
2020-01-30 16:51
本帖最后由 清雨影 于 2013-2-19 13:06 编辑

姐姐,你原来是香港的啊……怪不得繁体字加粤字。
关于POW,本身是针对单精度(Keil里面)浮点数运算的函数,会有第7位的舍入误差。
比如,1.999999其实就是2,第七位有效数字是不确定的,也就是说.
只有第六位是固定的。没办法,精度就是这样,只能允许6位有效数字。
第七位只有在数据满足一定条件的情况下是有效的,这个就不要去想了。
------------------------------
话说回来,为什么你的误差会出现在第四位,是你C语言没学好。
pow在keil里的原形:extern float pow   (float x, float y);
i=(pow(10,4));等于i=(u32)pow(10,4);
pow(10,4)=9999.998(那个8是第七位,做不得准)
(u32)9999.998=9999(转换为int类型时丢掉小数)
所以误差就放大了。所以要四舍五入。

一周热门 更多>