- 浮点型数据转换为字符串的方法:
- gcvt()函数
- sprintf()函数
gcvt()函数
函数名:gcvt
头文件:<stdlib.h>
函数原型: char *gcvt(double f,int n,char *c);
功能:把浮点数转换为字符串,四舍五入
参数:double f 要转换的浮点数
int n 为要显示的位数
char *c 存放结果的临时缓冲区
返回值:返回字符串指针,即c指针
但是,keil的C语言库不包含该函数,所以该函数不能在单片机上正常使用,建议使用方法二。
示例程序:
#include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include "string.h"
int main() { int n=5; double b = -1234.564789; char str[20]; char* str1; str1=gcvt(b,n,str); printf("str1=%s\tstr=%s\r\n",str1,str); //超过所设置的位数时,多余部分四舍五入 b=1.21; str1=gcvt(b,n,str); printf("str1=%s\tstr=%s\r\n",str1,str);//不足所设置位数的,不补零 int c=4E5; str1=gcvt(c,n,str);//整数以浮点型进行转换时,小数点后不补零 printf("str1=%s\tstr=%s\r\n",str1,str);
} |
运行结果:
str1=-1234.6 str=-1234.6 str1=1.21 str=1.21 str1=4.e+005 str=4.e+005 |
sprintf()函数
函数名:sprintf
头文件:<stdio.h>
函数原型:int sprintf(char *str, char * format [, argument, ...]);
功能:将格式化的数据写入字符串
参数:str: 要写入的字符串
format :格式化字符串,与printf相同
argument:变量(可变参数)
返回值:成功则返回参数str 字符串长度,失败则返回-1
sprintf()会根据参数format 字符串来转换并格式化数据,然后将结果复制到参数str 所指的字符串数组,直到出现字符串结束('\0')为止。关于参数format 字符串的格式请参考printf()。
示例程序:
#include <stdio.h> int main(void) { char cnt=10; char str1[200]; char str[200]; float db=0.12345; { sprintf(str,"db value:%f, ",db);//db value:0.12345, printf("%s\r\n",str); sprintf(str1,"cnt value:%d, ",cnt);//cnt value:10, printf("%s\r\n",str1); strcat(str,str1); printf("%s\r\n",str); } }
运行结果:
|