第一步,编写定点数显示函数DisplayNumber(int Number, char DOT) 两个参数分别是定点数,小数点位数。
这个函数先拆分Number,变成10进制数。二进制/十进制转换中学数学里就有, 不会忘了吧?想不起来了就参考下面的思路: unsigned char Buff[5]
Buff[0]=Number%10;Number/=10; Buff[1]=Number%10;Number/=10; Buff[2]=Number%10;Number/=10; Buff[3]=Number%10;Number/=10; Buff[4]=Number%10;Number/=10; 想要代码少,就改用for循环做
然后一个for()将DOT后数字打出来,另一个for循环将DOT前数字打出来。最后将小数点打出来。
这样,DisplayNumber(12345, 2) 打印出 123.45 DisplayNumber(12345, 3) 打印出 12.345
然后编写孚点显示函数DisplayFloat(float FNumber) 思路是先判断数据多少位,然后调用不同的定点显示函数
if (FNumber>1000) DisplayNumber(FNumber,0) else if(FNumber>100) DisplayNumber(FNumber*10,1) else if(FNumber>10) DisplayNumber(FNumber*100,2) else if(FNumber>1) DisplayNumber(FNumber*1000,3)
思路仅供参考,LZ如果不思程序的考结构和思路,很难成长。
|