人民币大写金额转换 c语言
来源:互联网 发布:创维电视机看网络直播 编辑:程序博客网 时间:2024/05/16 12:07
int ConvertMoneyCaps(double moneySum,char * money_chinese)
{
long int temp_i = (long )moneySum; /* 整数部分 */
float temp_f = moneySum - temp_i; /* 小数部分 */
int digit = 0, i, j, k, num_i;
char money[25];
char num[20], *p;
char name[][3] = {"元","拾","佰","仟","万","亿"};
char numchar[][3] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
/*ltoa(temp_i, num, 10); *//* 整数部分转换成字符串后在处理 */
memset(num,0,sizeof(num));
sprintf(num,"%d",temp_i);
p = num;
digit = strlen(num); /* 整数部分位数 */
memset(money,0,sizeof(money));
/*--------处理整数部分 start--------*/
for(i = 1; i <= digit; i ++)
{
k = (digit - i) % 4;
if(isdigit(*p))
{
num_i = *p & 0xF; /* 把字符转换成数字,比如 '0'-> 0,'1' -> 1*/
/*--------转换数字开始---------*/
if(num_i)
{
/*money = money+ numchar[num_i];*/
sprintf(money,"%s%s",money,numchar[num_i]);
}
else
{
if(k && (*(p + 1) &0xF))
sprintf(money,"%s零",money);
/*money += "零";*/
}
/*--------转换数字结束-------*/
/*---------添加计数单位开始----*/
if(k)
{
if(num_i)
sprintf(money,"%s%s",money,name[k]);
/*money = money + name[k];*/
}
else
{
j = digit - i;
if(j)
{
/*money = money + name[j/4 + 3];*/
sprintf(money,"%s%s",money,name[j/4 + 3]);
}
else
{
/* money += "元";*/
sprintf(money,"%s元",money);
}
}
/*--------添加计数单位结束--------*/
p++;
}
else
{
/*money = "遇到非数字退出!";*/
sprintf(money,"遇到非数字退出!");
return 1;
}
}
/*--------处理整数部分 End --------*/
/*--------处理小数部分 start--------*/
printf("%.2f/n",temp_f);
if(temp_f > 0.01)
{
temp_f=temp_f+0.005;
if((int)(temp_f*10))
{
/*money = money + numchar[(int)(temp_f*10)] + "角";*/
sprintf(money,"%s%s角",money,numchar[(int)(temp_f*10)]);
}
if((int)(temp_f*100)%10)
{
/*money = money + numchar[(int)(temp_f*100)%10] + "分";*/
sprintf(money,"%s%s分",money,numchar[(int)(temp_f*100)%10]);
}
}
/*--------处理小数部分 End--------*/
/*money += "整";*/
sprintf(money,"%s整",money);
strncpy(money_chinese,money,25);
return 0;
}
{
long int temp_i = (long )moneySum; /* 整数部分 */
float temp_f = moneySum - temp_i; /* 小数部分 */
int digit = 0, i, j, k, num_i;
char money[25];
char num[20], *p;
char name[][3] = {"元","拾","佰","仟","万","亿"};
char numchar[][3] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
/*ltoa(temp_i, num, 10); *//* 整数部分转换成字符串后在处理 */
memset(num,0,sizeof(num));
sprintf(num,"%d",temp_i);
p = num;
digit = strlen(num); /* 整数部分位数 */
memset(money,0,sizeof(money));
/*--------处理整数部分 start--------*/
for(i = 1; i <= digit; i ++)
{
k = (digit - i) % 4;
if(isdigit(*p))
{
num_i = *p & 0xF; /* 把字符转换成数字,比如 '0'-> 0,'1' -> 1*/
/*--------转换数字开始---------*/
if(num_i)
{
/*money = money+ numchar[num_i];*/
sprintf(money,"%s%s",money,numchar[num_i]);
}
else
{
if(k && (*(p + 1) &0xF))
sprintf(money,"%s零",money);
/*money += "零";*/
}
/*--------转换数字结束-------*/
/*---------添加计数单位开始----*/
if(k)
{
if(num_i)
sprintf(money,"%s%s",money,name[k]);
/*money = money + name[k];*/
}
else
{
j = digit - i;
if(j)
{
/*money = money + name[j/4 + 3];*/
sprintf(money,"%s%s",money,name[j/4 + 3]);
}
else
{
/* money += "元";*/
sprintf(money,"%s元",money);
}
}
/*--------添加计数单位结束--------*/
p++;
}
else
{
/*money = "遇到非数字退出!";*/
sprintf(money,"遇到非数字退出!");
return 1;
}
}
/*--------处理整数部分 End --------*/
/*--------处理小数部分 start--------*/
printf("%.2f/n",temp_f);
if(temp_f > 0.01)
{
temp_f=temp_f+0.005;
if((int)(temp_f*10))
{
/*money = money + numchar[(int)(temp_f*10)] + "角";*/
sprintf(money,"%s%s角",money,numchar[(int)(temp_f*10)]);
}
if((int)(temp_f*100)%10)
{
/*money = money + numchar[(int)(temp_f*100)%10] + "分";*/
sprintf(money,"%s%s分",money,numchar[(int)(temp_f*100)%10]);
}
}
/*--------处理小数部分 End--------*/
/*money += "整";*/
sprintf(money,"%s整",money);
strncpy(money_chinese,money,25);
return 0;
}
- 人民币大写金额转换 c语言
- 人民币大写金额转换
- C#转换人民币大写金额
- C#人民币金额大写转换
- 浮点数金额转换成大写人民币表示(C#)
- C语言编程:数字金额转换为中文大写金额
- 金额如何转换为人民币大写
- C#将人民币转换成大写金额
- 蓝桥杯 人民币金额大写 格式转换
- 转换金额为大写人民币-Java
- 人民币大写金额转换为数字
- 小写金额转换为人民币大写
- 人民币大写金额函数
- 人民币金额大写
- 人民币金额大写
- 人民币金额大写
- 人民币金额大写
- 人民币金额大写
- 为妻感动[转]
- CRC32的校验函数与码表的生成函数
- 在VFP中调用其他应用程序的实用技术
- Visual Foxpro生成任意打印字段报表的实现
- VFP访问外部数据源的几种方法
- 人民币大写金额转换 c语言
- 如何在运行时添加表到表单的数据环境
- 用VFP表单制作帮助文件
- VFP中的加密算法
- 用VFP实现点对点通信
- 软件巨头面临低价或免费软件的挑战
- 在VFP程序中创建工具条
- 为FoxPro中的弹出式菜单增加自学习功能
- 在VFP中实现可靠的随机密码和多用户权限控制