c语言tft屏浮点数显示,LCD屏显示小数的程序与心得

本文分享了作者在使用LCD屏显示浮点数时遇到的问题及解决方案。原有程序在显示7.200000时出现显示错误,通过检查发现是数据类型导致的BUG。作者提供了修改后的程序,包括一个基于坛友思路改造的函数和自创的逐位分离小数部分的方法,解决了浮点数显示不准确的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近调程序用到了LCD屏,起初在论坛里找到了坛友分享的显示小数的程序,自己挪过去发现不好用,就在坛友的程序的基础上做了一些小的修改,能满足需求了,但是近几天发现该玩的程序有个BUG,比如说传入显示数据为7.200000,屏幕上显示却变成了7.199999,刚开始怀疑是程序的事,就自己想了一个逐位分离小数部分的函数,后来发现还是时有时坏到最后才发现是自己的形参和局部变量的数据类型不对。现在附上以上提到的两个程序1.这是我根据坛友的帖子改的(在此感谢这位坛友提供的思路,在论坛上搜索“显示小数”第一个就是坛友的帖子)

//小数显示函数

//Int:整数位数  Float:小数位数

void LCD_ShowFloat(u16 x,u16 y,u8 size,float num,u8 Int,u8 Float)

{

int i,a=1,n,t;

n=num;

printf("n: %d\r\n",n);

printf("num %lf\r\n",num);

for(i=0;i

{

a*=10;

t=(num-n)*a;

LCD_ShowxNum(x+8+Int*8,y,t,Float,size,0);

}

LCD_ShowxNum(x,y,n,Int,size,0);

LCD_ShowString(x+Int*8,y,200,16,size,".");

}

2.自己想的分离各位的方法(如有雷同,不胜荣幸)

//小数显示函数

//Int:整数位数 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值