double数据转换成char字符串的函数——dtostrf()用法
2016-10-14 16:48
1501 查看
最近做了一个机电一体化设备的项目,主要任务是完成模拟量数据采集、步进电机和直流电机驱动控制、液晶屏显示等。采用AVR单片机作为控制核心,
Atmel Studio 6.2集成开发环境编写单片机程序。在项目中需要把double型数据转换成char型字符串。本想自己写数据转换程序,写之前先上网看看前人们有什么经验,一番搜索发现Atmel
Studio 中自带的dtostrf()函数可以实现这一功能。
Atmel Studio 的帮助里对dtostrf()函数的介绍如下:
函数原型:
char * dtostrf(
double__val,
signed char__width,
unsigned char__prec,
char *__s)
函数介绍:
参数“__val”:需要转换的double型数据;
参数“s”:转换成的字符串首地址;
参数“__width”:输出字符串的总位数;
参数“__prec”:输出字符串小数点后的位数
函数dtostrf()可以把通过val传递的double型数据转换成其ASCII形式并存储在s中。函数调用时要保证s具有足够的存储空间。最终转换结果的格式为“[-]d.ddd”。“width”为输出字符串的总长度(包括‘.’和数据前边可能存在的符号)。“prec”决定转换结果保留小数点后的位数。“width”为signed型的数据,负数代表从左端开始计数,也就是从高位开始计数,正数代表从右端计数,也就是从低位段开始计数。函数最终返回指向“s”的指针。
编写了如上的测试程序,double型数据-0.526转换成字符串m_min_char[],设置转换结果为4位数其中2位小数。烧写进单片机后,液晶屏上显示“-0.53”。这说明在转换时函数还会对double型数据进行4舍5入处理。
Atmel Studio 6.2集成开发环境编写单片机程序。在项目中需要把double型数据转换成char型字符串。本想自己写数据转换程序,写之前先上网看看前人们有什么经验,一番搜索发现Atmel
Studio 中自带的dtostrf()函数可以实现这一功能。
Atmel Studio 的帮助里对dtostrf()函数的介绍如下:
函数原型:
char * dtostrf(
double__val,
signed char__width,
unsigned char__prec,
char *__s)
函数介绍:
参数“__val”:需要转换的double型数据;
参数“s”:转换成的字符串首地址;
参数“__width”:输出字符串的总位数;
参数“__prec”:输出字符串小数点后的位数
函数dtostrf()可以把通过val传递的double型数据转换成其ASCII形式并存储在s中。函数调用时要保证s具有足够的存储空间。最终转换结果的格式为“[-]d.ddd”。“width”为输出字符串的总长度(包括‘.’和数据前边可能存在的符号)。“prec”决定转换结果保留小数点后的位数。“width”为signed型的数据,负数代表从左端开始计数,也就是从高位开始计数,正数代表从右端计数,也就是从低位段开始计数。函数最终返回指向“s”的指针。
编写了如上的测试程序,double型数据-0.526转换成字符串m_min_char[],设置转换结果为4位数其中2位小数。烧写进单片机后,液晶屏上显示“-0.53”。这说明在转换时函数还会对double型数据进行4舍5入处理。
相关文章推荐
- Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数
- Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数
- VC中char,wchar_t,TCHAR及相应字符串处理函数辨析(附常用数据类型转换)
- int、double、boolean、char、float、long、Object等七种数据类型转换成String数据类型 用到的方法是String.valueOf();
- [C] sprintf 函数的用法 -> 各种类型的数据构造成字符串
- 为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数
- c#数据类型转换,BYTE,float,double,char类型间的转换方法
- [C] sprintf 函数的用法 -> 各种类型的数据构造成字符串
- String数据类型转换成long、int、double、float、boolean、char等七种数据类型
- 〖編程·C++〗string str; 转换为char *ch;的函数、字符串转换为数字的函数
- 为函数原型编写函数定义:int my_atoi(char *str);(将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数))
- 字符串转换为double的函数strtod
- c#数据类型转换,BYTE,float,double,char类型间的转换方法
- C++中string,char,int,double等数据类型的相互转换及与ASCII码的转换
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- Format() 函数用于将数据转换为格式化的字符串输出
- c#数据类型转换,与其BYTE,float,double,char类型间的转换方法
- java中数据类型转换 Integer String Long Float Double Date Char
- 写一个double my_atof(char *str)函数,将一个数字字符串转换成对应的浮点数
- [原创]SQL表值函数:把用逗号分隔的字符串转换成表格数据