请教C51 sprintf数据转换出问题

2020-01-13 18:36发布

使用KEIL C51软件,芯片是c8051f020,在使用sprintf函数转换时,出现问题,不解,请教大家。
unsigned char   xdata  tempp[75],i;

i=13;
sprintf(tempp,"%d",i);

在tempp存储的是0x33 ,0x34 ,0x00 明显不对。
如果这样sprintf(tempp,"%d",(int)i); 则转为0x31 ,0x33 ,0x00是对的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
jxcrgt35
1楼-- · 2020-01-14 13:16
takashiki 发表于 2018-9-29 10:57

str="124.414194";
        
        sprintf (&tempp[0],"%f",atof(str));

结果等于124.414200
请教怎么提高转换经度?
jxcrgt35
2楼-- · 2020-01-14 15:06
cocom 发表于 2018-9-29 11:20
数据类型,i是什么类型你要与%d匹配。

str="124.414194";
        
        sprintf (&tempp[0],"%f",atof(str));

结果等于124.414200
请教怎么提高转换经度?
t3486784401
3楼-- · 2020-01-14 19:28
你都通过float了还要啥精度,6-7位有效数字撑死了。
jxcrgt35
4楼-- · 2020-01-14 23:14
t3486784401 发表于 2018-9-30 07:37
你都通过float了还要啥精度,6-7位有效数字撑死了。

转换GPS点经纬度信息,不知道会区别到什么程度
t3486784401
5楼-- · 2020-01-15 02:23
 精彩回答 2  元偷偷看……
jxcrgt35
6楼-- · 2020-01-15 07:51
t3486784401 发表于 2018-9-30 11:48
6400km * 2PI * 1e-6 大致是 40m 的样子,这是低纬度最差的精度。

明显经纬度的有效数字不够的,印象中 ...

谢谢回复,有什么方法提高吗?

一周热门 更多>