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*/
&
{
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*/
&

该博客介绍了一个C语言函数ConvertMoneyCaps,用于将输入的double类型金额转换为大写的中文表示。函数首先分离出金额的整数和小数部分,然后逐位处理整数部分,结合对应的中文计数单位进行转换。遇到小数部分,会精确到分并加上相应的中文表示。最后,函数将转换后的字符串复制到指定的字符数组中。

1201

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



