浮点数转化为字符串存进数组模块分享(自动保留到小数点后一位)

目录

一、使用说明

二、模块代码

三、代码讲解

四、作者的话


一、使用说明

        1、数据格式:浮点数可以为整数部分不超过3位的所有浮点数,数组格式只能设置为下面这一种。

unsigned char fnums[5]="0";
/*
a[0]用于存放正负(1表示正,0表示负),
a[1],a[2]用于存放温度的整数部分,
a[3]用于存放'.',a[4]用于存放小数位,
a[5]作结束位
*/

        2.功能:将浮点数转化为字符串并存进数组。

        3.目的:方便在数码管、LCD、OLED等屏幕上显示一些比较小的浮点数(例如显示一般的温度:+21.7摄氏度)。

二、模块代码

//函数名:fnum_tran
//参数: *fnums:用于存放数组,fnum:要转化的浮点数(-100,+100)
//功能: 将浮点数fnum转化为字符串并存进数组*fnums
//返回:无
//作者:常工第一深情呀 
void fnum_tran(unsigned char *fnums,double fnum)
{
	//intnum表示整数部分,smallnum表示小数点后一位
	char intnum,smallnum,x;
	x='0'-0;//x表示字符型数字和数字在ASCII码表上相差的数字
	//规定合法范围 
	if(fnum>=100||fnum<=-100) return;
	//正负号存入数组
	if(fnum<=0)
	{
		fnum = 0-fnum;
		fnums[0] = '-';
	}
	else fnums[0] = '+';
	//整数部分各个位存入数组 
	intnum = (int)fnum;
	//+x是为了转化为字符 
	fnums[1] = intnum/10+x;
	fnums[2] = intnum%10+x;
	//小数点
	fnums[3] = '.';
	//小数点后一位存入数组 
	smallnum = (int)((fnum-(double)intnum)*10);
	fnums[4] = smallnum+x;
}

三、代码讲解

此函数将正负号、整数的十位和个位和小数点的后一位单独取出存入数组,以字符的小数点作分割,比较简单。

四、作者的话

此代码有较大局限性,请仔细阅读使用,写这个模块的原因是,很多的屏幕都会有显示字符和数字的函数,但没有显示浮点数的函数模块,为了以后方便显示一些小的浮点数,设计了这个函数。下面是我用OLED显示温度的图片。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

废话文学创始人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值