打印

问个POW()函数问题

[复制链接]
4006|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangli211|  楼主 | 2008-11-10 12:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
computer00| | 2008-11-10 13:05 | 只看该作者

你用的是整数吧?这个函数返回的是浮点数

浮点数向整数转化时,采用的是直接丢弃小数部分的方式,所以结果会偏小。
如果要四舍五入的话,运算结果要加上0.5,例如:
unsigned long int x;
x=pow(10,2)+0.5;
这样x的结果就会是100了,当然你可以试试其它数。

当然了,如果最后的结果是浮点数,那么就不用这个加0.5的操作,最后的结果当然也肯定会有一定误差,这个主要是浮点数精度问题,浮点数比较时也不能直接用等号比较。

使用特权

评论回复
板凳
huangli211|  楼主 | 2008-11-10 13:22 | 只看该作者

是的了,刚才有仔细看看函数说明

确实是浮点型运算,返回的是一个FLOAT型,我把他付给了INT型,结果小数点后的99999999999999999999就被忽略了.

使用特权

评论回复
地板
HWM| | 2008-11-10 13:24 | 只看该作者

基本习惯: = + 0.5;

使用特权

评论回复
5
huangli211|  楼主 | 2008-11-10 13:24 | 只看该作者

那么是否有INT型的函数呢?

使用特权

评论回复
6
HWM| | 2008-11-10 13:26 | 只看该作者

没有

使用特权

评论回复
7
huangli211|  楼主 | 2008-11-10 13:49 | 只看该作者

谢谢computer00,HWM两位朋友

使用特权

评论回复
8
xwj| | 2008-11-10 13:55 | 只看该作者

整数次方字节用乘法即可,又快又好

但要注意计算溢出问题哦

使用特权

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

本版积分规则

19

主题

86

帖子

0

粉丝