double数据转换成char字符串的函数——dtostrf()用法

       最近做了一个机电一体化设备的项目,主要任务是完成模拟量数据采集、步进电机和直流电机驱动控制、液晶屏显示等。采用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型数据进行45入处理。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值