📄 wfmt.c
字号:
#include "../inc/screen.h"/* * 金额格式输出 * * 例: arg->in = 1543785.23, arg->out = " 1,543,785.23". * 若 arg->in 超过 14 位数字(不包括'.'), arg->out = " ***,***,***,***.**". * */wdfmt(arg)struct dfrec *arg;{ char str[16]; int i,j;/* double fabs();*//* if(fabs(arg->in) >= 100000000000000.00) { sprintf(arg->out," ***,***,***,***.**"); return(FALSE); }*/ sprintf(str,"%15.2f",arg->in); for(i = 0,j = 0;i < 16;i++,j++) { arg->out[19 - j] = str[15 - i]; if((i==6 || i==9 || i==12) && str[14-i]>='0' && str[14-i]<='9') { j++; arg->out[19 - j] = ','; } } while(j != 20) { arg->out[19 - j] = ' '; j++; } return(TRUE);}wsfmt(arg)struct sfrec *arg;{ char str[12]; int i,j; sprintf(str,"%11ld",arg->in); for(i = 0,j = 0;i < 12;i++,j++) { arg->out[14 - j] = str[11 - i]; if(i == 2) { j++; arg->out[14 - j] = '.'; } if((i==5 || i==8) && str[10-i]>='0' && str[10-i]<='9') { j++; arg->out[14 - j] = ','; } } while(j != 15) { arg->out[14 - j] = ' '; j++; } if(arg->out[12] == SP) arg->out[12] = '0'; if(arg->out[10] == SP) arg->out[10] = '0'; return(TRUE);}wdfmt0(arg)struct dfrec *arg;{ int i; i = 0; wdfmt(arg); while(i < 19 && arg->out[i] == SP) i++; arg->out[i-1] = '$';}wsfmt0(arg)struct sfrec *arg;{ int i; i = 0; wsfmt(arg); while(i < 15 && arg->out[i] == SP) i++; arg->out[i-1] = '$';}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -