论坛元老
 
- 积分
- 3359
- 金钱
- 3359
- 注册时间
- 2016-1-7
- 在线时间
- 552 小时
|
5金钱
本帖最后由 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(),如果字符串比较短还行,太长了一转换就发现问题了。有没有可以直接把字符串取出对应字符,或取出对应数值的函数?第一次做这种长数据,还不太会处理,求教一下!
|
最佳答案
查看完整内容[请看2#楼]
杀定了。直接结合 fmod(double x, double y);浮点型取模运算,速度N快。不过要包含这几个头文件。math.h与stdlib.h,stdio.h。否则杀不定。结果让你很无耐。
|