数据处理字符串:862631039324107如何取出对应数值?

2019-07-20 15:09发布

本帖最后由 challenger 于 2017-4-18 09:12 编辑

字符串:862631039324107如何取出对应数值?用atof(862631039324107)函数,可以变成浮点数。

然后:

                sn16=atof(862631039324107)/100000000000000;        //取出8
                sn15=atof(862631039324107)/10000000000000-sn16*10; //取出6
                sn14=atof(862631039324107)/1000000000000-sn16*100-sn15*10;//取出2
                sn13=atof(862631039324107)/100000000000-sn16*1000-sn15*100-sn14*10;//取出6
                sn12=atof(862631039324107)/10000000000-sn16*10000-sn15*1000-sn14*100-sn13*10;//取出3
                sn11=atof(862631039324107)/1000000000-sn16*100000-sn15*10000-sn14*1000-sn13*100-sn12*10;//取出1
                sn10=atof(862631039324107)/100000000-sn16*1000000-sn15*100000-sn14*10000-sn13*1000-sn12*100-sn11*10;//取出0
                sn9=atof(862631039324107)/10000000-sn16*10000000-sn15*1000000-sn14*100000-sn13*10000-sn12*1000-sn11*100-sn10*10;        //取出3



               。。。但是我执行到:sn8=atof(862631039324107)/1000000-sn16*100000000-sn15*10000000-sn14*1000000-sn13*100000-sn12*10000-sn11*1000-sn10*100-sn9*10;结果就不对,
             本来想用%运算,但是stm32老报错,应该是atof()函数是浮点型,由于值比较长,超出整型值,类型不一致导致的。而且这种方法操作计算太麻烦,用atof(),如果字符串比较短还行,太长了一转换就发现问题了。有没有可以直接把字符串取出对应字符,或取出对应数值的函数?第一次做这种长数据,还不太会处理,求教一下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。