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;
}
人民幣大寫金額轉換 c語言
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
HTTP常見錯誤代碼列表彙總及解決方案
kzlong
2020-02-23 02:04:05
sprintf 詳解
kzlong
2020-02-23 02:04:05
c語言程序換行符“/”使用
kzlong
2020-02-23 02:04:05
AIX 系統常用命令
kzlong
2020-02-23 02:04:05
HTTP常見錯誤代碼列表彙總及解決方案
kzlong
2020-02-23 02:04:05
sprintf 詳解
kzlong
2020-02-23 02:04:05
c語言程序換行符“/”使用
kzlong
2020-02-23 02:04:05