请教C51 sprintf数据转换出问题
使用KEIL C51软件,芯片是c8051f020,在使用sprintf函数转换时,出现问题,不解,请教大家。unsigned char xdatatempp,i;
i=13;
sprintf(tempp,"%d",i);
在tempp存储的是0x33 ,0x34 ,0x00 明显不对。
如果这样sprintf(tempp,"%d",(int)i); 则转为0x31 ,0x33 ,0x00是对的。 sprintf(tempp,"%bd",i); 数据类型,i是什么类型你要与%d匹配。 takashiki 发表于 2018-9-29 10:57
谢谢!! cocom 发表于 2018-9-29 11:20
数据类型,i是什么类型你要与%d匹配。
unsigned char i=13; 本帖最后由 jxcrgt35 于 2018-9-30 03:48 编辑
str="124.414194";
sprintf (&tempp,"%f",atof(str));
结果等于124.414200
请教怎么提高转换经度? 本帖最后由 jxcrgt35 于 2018-9-30 03:49 编辑
str="124.414194";
sprintf (&tempp,"%f",atof(str));
结果等于124.414200
请教怎么提高转换经度? takashiki 发表于 2018-9-29 10:57
str="124.414194";
sprintf (&tempp,"%f",atof(str));
结果等于124.414200
请教怎么提高转换经度? cocom 发表于 2018-9-29 11:20
数据类型,i是什么类型你要与%d匹配。
str="124.414194";
sprintf (&tempp,"%f",atof(str));
结果等于124.414200
请教怎么提高转换经度? 你都通过float了还要啥精度,6-7位有效数字撑死了。 t3486784401 发表于 2018-9-30 07:37
你都通过float了还要啥精度,6-7位有效数字撑死了。
转换GPS点经纬度信息,不知道会区别到什么程度 jxcrgt35 发表于 2018-9-30 09:44
转换GPS点经纬度信息,不知道会区别到什么程度
6400km * 2PI * 1e-6 大致是 40m 的样子,这是低纬度最差的精度。
明显经纬度的有效数字不够的,印象中都是 9-10 位有效数字 t3486784401 发表于 2018-9-30 11:48
6400km * 2PI * 1e-6 大致是 40m 的样子,这是低纬度最差的精度。
明显经纬度的有效数字不够的,印象中 ...
谢谢回复,有什么方法提高吗? c51仅仅支持单精度的浮点运算。可以自行写代码实现双精度的浮点运算。
也可以用AVR,M0等单片机实现。
页:
[1]