您的位置:首页 > 其它

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入处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dtostrf 函数
相关文章推荐