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

小歆12年前单片机07323

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--;
}

相关文章

ゆえばおしょうyい.jpg

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

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

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

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

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

小歆专用挂机锁V1.0正式版00.jpg

[小歆][专用挂机锁][V1.0][正式版][2012.10.28]

本软件已升级至1.5,http://www.xxgzs.org/forum.php?mod=viewthread&tid=86    **************...

Win10安装VB6.0及其适配MSCOMCTL.OCX方法

Win10安装VB6.0及其适配MSCOMCTL.OCX方法

前言 2015年7月份出了Win10正式版(10240),观察了一个月感觉还可以,全新安装了Win10并尝试各种安装以前Win7中的软件,当然也包括兼容问题重重的VB6.0。安装Wi...

关于AutoCAD经常弹出安装窗口的解决办法

前言 先说说原因吧,网传是因为AutoCAD2007简体中文版的安装包中嵌入了某病毒程序,其关键库是dfst.dll文件,目前各大杀毒软件基本都能查出来,杀毒软件删除dfst.dll...

小歆网页刷屏工具01.jpg

[小歆][网页刷屏工具][V1.3][2012.10.01]

小歆网页刷屏工具 V1.3 软件介绍:     1.《小歆网页刷屏工具》是由小歆工作室内部刷屏工具研发而来的;     2.软件界面简洁,轻...

发表评论    

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