📄 num.txt
字号:
uchar xdata intbuf[16]={ '\0'};
/*----------------------------------------------------------------------------
显示数据处理(拆数字)
inum:要拆的数;
将一个int型数据转化成ascii码字符串,结尾以'\0'结束,并将结果存于intbuf(全局
变量数组,可在任何地方被调用)
-----------------------------------------------------------------------------*/
void puti(long data inum)
{
long data t;
uchar data c=0;
bit flag=1;
t=100000000L;
for(;c<16;c++)
intbuf[c]='\0';
c=0;
if(inum<0){
intbuf[0]='-';
c++;
inum=-inum;
}
for(;t>=10;t/=10){//此为将int型转化成字符串算法
if(t==10){
intbuf[c]=inum/t+'0';
intbuf[++c]=inum%t+'0';
intbuf[++c]='\0';
break;
}
if(inum<t&flag)
continue;
else {
flag=0;
intbuf[c]=inum/t;
inum-=(long)(intbuf[c]) * t;
intbuf[c]+='0';
c++;
}
}
}
/*----------------------------------------------------------------------------
将intbuf数组由后向前数第fbit位插入小数点'.',在系统避免用浮点数运算场合下,用long型
数据的乘除得到运算结果,再在结果中取小数位比如,32/456结果的显示处理可以如此:将32乘
10000,再除以456,将结果(int型数据)用puti()处理,此时是整数,再调用putf(4),保留四位小
数即可,这样处理比调用浮点运算+浮点显示要快得多
-----------------------------------------------------------------------------*/
void putf(uchar fbit){
char idata t0;
char idata pf;
pf=strlen(intbuf)-fbit;
if(intbuf[0]!='-'){
if(pf>0){
t0=strlen(intbuf);
for(pf=t0;pf>t0-fbit;pf--){
intbuf[pf]=intbuf[pf-1];
}
intbuf[pf]='.';
}
else{
pf=strlen(intbuf)-1;
for(t0=fbit+1;t0>=0;t0--,pf--){
if(pf>=0)
intbuf[t0]=intbuf[pf];
else
intbuf[t0]='0';
}
intbuf[1]='.';
pf=1; //去0用
}
}
else{
if(pf>1){
t0=strlen(intbuf);
for(pf=t0;pf>t0-fbit;pf--){
intbuf[pf]=intbuf[pf-1];
}
intbuf[pf]='.';
}
else{
pf=strlen(intbuf)-1;
for(t0=fbit+2;t0>=1;t0--,pf--){
if(pf>=1)
intbuf[t0]=intbuf[pf];
else
intbuf[t0]='0';
}
intbuf[0]='-';
intbuf[2]='.';
pf=2; //去0用
}
}
/*----------------------------------------------------------------------------
if(intbuf[pf+3]=='0'){ //去掉小数后面多于的0,在需要保持精度时应该去掉这段程序
intbuf[pf+3]='\0';
if(intbuf[pf+2]=='0')
{ intbuf[pf+2]='\0';
if(intbuf[pf+1]=='0')
{intbuf[pf+1]='\0';
intbuf[pf] ='\0';
}
}
}
-----------------------------------------------------------------------------*/
}
/*----------------------------------------------------------------------------
拆浮点数。默认保留3为小数
-----------------------------------------------------------------------------*/
void chaishu(float fnum)
{
long data t;
char cd;
if(fnum>(int)fnum)
{ t=(long)(fnum*1000);
puti(t);
putf(3);}
else
puti(fnum);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -