Sprintf用法的解疑

2019-07-20 23:06发布

[mw_shl_code=c,true]uint8_t float2Ascii(const float data, char *ascii)
{
        uint8_t size = 0;
               
        sprintf(ascii, "%g", data);
        size = strlen(ascii);

        return size;
}[/mw_shl_code]

如上代码,data输出的范围在-100~100之间,但是我的ascii变量显示的数据为1.05e105,
类型转换符改为%f,ascii输出的值全为0了(data值是外部变量,一直在改变),

这是为什么,怎么才能把我的data值传过来,sprintf的用法已经上网百度过,基本的用法都知道了,就是上面的看不懂
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
fang百川
1楼-- · 2019-07-21 01:21
没有一字节对齐,float类型的需要一字节对齐
1208
2楼-- · 2019-07-21 03:52
用u32位试下
edmund1234
3楼-- · 2019-07-21 05:34
1.05e105, e105? folat的范围是多少不记得了, 但我怀疑e105是超出范围了

一周热门 更多>