c语言如何将浮点型数据转换为数组

我想讲18b20上的数据采集出来,显示在12864上,但是问题是比说 我采集到的温度是26.3,那么我怎么样把26.3转换为数组啊?这样才好显示在12864上。。
麻烦各位。。。

你好:
转换后的数据经过处理之后,高位数据/10和%10可以直接显示在LCD12864上,但是低位数据(也就是小数部分)需要取数组值来处理。
因为现在在外边,手机又无法上程序,你可以到我的百度空间里找找DS18B20的液晶显示程序,还带温度报警,有不懂的地方可以提出一起交流。
希望我的回答能帮助到你。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-14

库函数gcvt可以完成此任务,它返回转换后的字符串的地址。如:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"
#include "stdlib.h"
int main(void){
    double x=34.743829109;
    char a[19];
    printf("%s\n",gcvt(x,5,a));//5确定有效数字长度且据其后数字四舍五入
    return 0;
}

第2个回答  2013-09-12
#include "stdio.h"
float temp=26.3;
char buf[10];
sscanf(temp,"%4.1f",buf);//buf="26.3"
LCD_PutString(buf);
单片机c语言编程里可以调用sscanf函数,但是scanf,printf就不行了,那是需要硬件
第3个回答  2013-09-12
26.3转字符数组还是浮点数组呀?追问

26.3就转换为 2 6 . 3 四个字符组成的数组 就 可以了

追答

uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
value=ReadTemperature();
if(value&0x8000)
{
str[0]=0x40;//负号标志
value=~value; // 取反加1
value+=1;
}
else
{
str[0]=0;
valueH=value>>4;
valueL=value&0x0F;
valueL=valueL*6/10;//小数近似处理
}

str[5]=0x39; //显示C符号
str[1]=tab[TempH/100]; //十位温度
str[2]=tab[(TempH%100)/10]; //十位温度
str[3]=tab[(TempH%100)%10]|0x80; //个位温度,带小数点
str[4]=tab[TempL];

相似回答