单片机中浮点数转字符数组的方法(sprintf 函数)

小歆11年前单片机06052

sprintf函数

函数功能:把格式化的数据写入某个字符串
头文件:stdio.h
函数原型:int sprintf( char *buffer, const char *format, [ argument] … ) ;
返回值:字符串长度(strlen)

例如:


uint8 buf[16];
double word_sou = 3.1415926;
n = sprintf(buf,"%f",word_sou);

结果:


buf={'3','.','1','4','1','5','9','2','6'};//字符数组
n=9;//buf数组中元素的个数

格式更多说明:

"
%a │读浮点值(仅适用于 C99)
%A │读浮点值(仅适用于 C99)
%c │读单字符
%d │读十进制整数
%i │读十进制、八进制、十六进制整数
%e │读浮点数
%E │读浮点数
%f │读浮点数
%F │读浮点数(仅适用于 C99)
%g │读浮点数
%G │读浮点数
%o │读八进制数
%s │读字符串
%x │读十六进制数
%X │读十六进制数
%p │读指针值
%n │至此已读入值的等价字符数
%u │读无符号十进制整数
%% │读 % 符号(百分号)

PS:有些时候%g会出错,所以最好是用%f;并且可以使用下面这段程序来达到%g的效果!

//定义变量
uint8 n,i;
uint8 word_str[16];
double word_sou = 3.14;

//浮点数转字符串
n = sprintf(word_str,"%f",word_sou);
i = n; //记录字符数组元素的个数

//消除结果后多余的“0”
while(word_str[--i] == '0')
{
word_str[i] = '\0';
}

//消除结果后多余的“.”
if(word_str[i] == '.')
{
word_str[i] = '\0';
i--;
}

相关文章

Discuz附件下载权限绕过工具.png

[小歆][Discuz附件下载权限绕过工具][V1.1][2014.03.13]

Discuz附件下载权限绕过工具V1.1 本软件利用Discuz论坛的漏洞来下载论坛的附件。 【Discuz3.X的有部分好像已经失效了,自测,我刚刚测试了一个3.X论坛还是...

STM32基本开发流程(以GPIO为例)

初学stm32,在此总结一下stm32的基本开发流程,就当总结规律方便以后进一步学习;本文所有内容都是基于ST库3.5版本的个人见解! 时钟部分 个人理解,为了降低功耗s...

ゆえばおしょうyい.jpg

【VB源码】余额宝收益值查询工具

名称:(支付宝)余额宝收益值查询工具V1.0 作者:小歆 说明:通过调用官网的“万份收益值”来计算“收益资金”,程序很简单,大牛勿喷! 源码下载: 余额宝查询...

[小歆][LOL昵称查询QQ号工具][V1.0][2014.03.20]

[小歆][LOL昵称查询QQ号工具][V1.0][2014.03.20]

名称:LOL昵称查询QQ号工具V1.0 作者:小歆 说明:通过腾讯的游戏人生来获取的... 程序下载:LOL昵称查询QQ号工具V1.0(80...

在Keil MDK中编译Keil C51教程

在电脑中同时要用到51和STM32开发,同时安装了Keil MDK和Keil C51。   我先安装Keil C51,再安装Keil MDK,安装在不同的目录下...

Xcode官方直接下载地址(xip文件)

Xcode官方直接下载地址(xip文件)

获取方法 使用苹果开发者账号访问https://developer.apple.com/downloads/网站,在左侧列表中选择Developer Tools选项,然后在右侧的列表...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。