原创程序,在SCO UNIX和红旗LINUX下测试通过
int xianjin(double amt,char *rt_str)
{ static char *daxie="零壹贰叁肆伍陆柒捌玖";
static char *weishu="亿仟佰拾万仟佰拾圆整角分";
int i,flag=0,tmp_num;
char tmp[4+1],amt_str[50+1];
memset(amt_str,0,sizeof(amt_str));
sprintf(amt_str,"%012.2f",amt);
memset(rt_str,0,sizeof(rt_str));
for (i=0;amt_str[i];i++)
{ tmp_num=amt_str[i]-48;
if( flag==0 ) {
if( amt_str[i]=='.' )
continue;
if( tmp_num==0 )
continue;
else
flag=1;
sprintf(rt_str,"%2.2s%2.2s",daxie+tmp_num*2,weishu+i*2);
}
else {
if(amt_str[i]=='.')
continue;
memset(tmp,0,sizeof(tmp));
sprintf(tmp,"%2.2s%2.2s",daxie+tmp_num*2,weishu+i*2);
if(!strncmp(tmp,"零",2))
if(!strncmp(tmp+2,"圆",2))
{memset(tmp,0,sizeof(tmp));sprintf(tmp,"圆");}
else if(!strncmp(tmp+2,"万",2))
{memset(tmp,0,sizeof(tmp));sprintf(tmp,"万");}
else if( (amt_str[i+1]>='1') &&(amt_str[i+1]<='9') )
{memset(tmp,0,sizeof(tmp));sprintf(tmp,"零");}
else
continue;
strcat(rt_str,tmp);
}
}
if(!strncmp(tmp+2,"圆",2))
strcat(rt_str,"整");
return 1;
}
493

被折叠的 条评论
为什么被折叠?



