OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 求指点啊 关于430IAR中string.h的pow幂函数的问题

共5条 1/1 1 跳转至

求指点啊 关于430IAR中string.h的pow幂函数的问题

助工
2014-11-28 12:28:02    评分

                数组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 型

 



高工
2014-11-28 13:35:27    评分
2楼
pow返回什么类型呢? str和money看上去可都是整型哟

助工
2014-11-28 14:05:22    评分
3楼
str是unsigned char ,money是unsigned long

高工
2014-11-28 17:06:57    评分
4楼

几种不同类型变量进行运算

最好还是统一一下吧


助工
2014-11-29 10:33:30    评分
5楼

因为用pow()会得出99.几吗,所以又用了另一个函数ceil(),现在没有问题了,

 

您看这个问题您是否能帮忙解决一下

 

unsigned long money;

unsigned char rxbuf[20];

430单片机中用memcpy的话,memcpy(&money,rxbuf,4);为什么long型的money总是低位在前高位在后呢,

即rxbuf的前四个值会倒序赋值给money,这个怎么办啊,有没有什么可用的函数,否则只能自己写了

 

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]