数组str的前三个值{1,0,0}
money=0;
for(uchar i=num;i>0;i--)
{
money+=(str[num-i]*pow(10,(i-1)));
}
这样计算出来为什么是money=99?
在网上看说是pow()的两个参数都是flaot型的,
money+=(str[num-i]*pow((float)10,(float)(i-1)));但是改了之后还是不正确啊,这是怎么回事啊
num的值不确定,但是在程序里面可以保证它在str的下标范围内,比如说str[0..2]={1,0,0},我希望得出的结果是100,但是得出的是99,而当str[0..3]={1,0,0,0}时可以得到1000 money是unsigned long型,str是unsigned char 型