数字金额转换为汉字形式
2010-07-28 13:44
330 查看
数字金额转换大写汉字
/*
思路: 根据输入的数字大小确认 数字的是几位数 以及位数的单位量 比如输入10000 共5位数,单位量为万(10000)
然后根据位数 在来进行转换
用两个数字保存大写金额单位和大小汉字0到9,然后在根据位数进行对于查找 先查找大写汉字,用一个字符数组保存,
在查找金额单位,在将其连接到字符串后面 最后输出字符就ok了
最大金额范围(0-9999999999999)13位数
*/
#include<iostream>
#include<string>
using namespace std;
char *Money_Change( long double money); //数字金额转为汉字金额函数声明
int main()
{
long double money;
while (1)
{
cout<<"请输入数字金额:";
cin>>money;
cout<<Money_Change(money)<<endl;
}
system("pause");
return 0;
}
char *Money_Change( long double money) //数字金额转为汉字金额函数声明
{
char *danwei[15] ={"分","角","元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万"}; //钱单位
char *hz_shuzi[10] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; //汉字0-9
static char strresult[200]; //保存转换后汉字
double temp; //保存输入钱数
double base = 1.0; //单位量整数(10,100,1000,10000...)
int n = 0; //输入的金额有多少位数
temp = money*100.0;
strcpy(strresult,"转换后金额为:");
if (temp <0.0) //输入钱数为负数
{
strcpy(strresult,"零元零角零分 ");
}
else
{
/* 如输入12345 temp = 1234500
1.base = 10, temp = 123450 n=1
2.base = 100, temp = 12345 n=2
3.base = 1000, temp = 1234 n=3
4.base = 10000, temp = 123 n=4
5.base = 100000, temp = 12 n=5
6.base = 1000000, temp = 1 n=6
temp<10 退出
*/
while (temp >= 10.0) //输入钱数大于10 计算输入钱数的位数
{
base = base*10;
temp = temp/10.0;
n++; // 输入的金额有多少位数
}
if (n >= 15) //位数大于15
{
strcpy(strresult,"输入金额超出范围了!");
}
else
{
/* 此时 temp=1234500 ,base = 1000000, n=6
n=7;d=1; temp=234500;base=100000 strcat(strresult,hz_shuzi[1]"壹"),strcat(strresult,danwei[7]"万")
n=6;
...
*/
temp = money*100.0;
for (int i=n; i>=0; i--) //根据位数转换
{
int d = (int)(temp/base); //求每位的数字式多少
temp = temp - base*(double)d; //除去最高位数字,减一位后的的数字
base = base/10.0;
strcat(strresult,hz_shuzi[d]); //字符连接
strcat(strresult,danwei[i]);
}
}
}
return strresult;
}
/*
思路: 根据输入的数字大小确认 数字的是几位数 以及位数的单位量 比如输入10000 共5位数,单位量为万(10000)
然后根据位数 在来进行转换
用两个数字保存大写金额单位和大小汉字0到9,然后在根据位数进行对于查找 先查找大写汉字,用一个字符数组保存,
在查找金额单位,在将其连接到字符串后面 最后输出字符就ok了
最大金额范围(0-9999999999999)13位数
*/
#include<iostream>
#include<string>
using namespace std;
char *Money_Change( long double money); //数字金额转为汉字金额函数声明
int main()
{
long double money;
while (1)
{
cout<<"请输入数字金额:";
cin>>money;
cout<<Money_Change(money)<<endl;
}
system("pause");
return 0;
}
char *Money_Change( long double money) //数字金额转为汉字金额函数声明
{
char *danwei[15] ={"分","角","元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万"}; //钱单位
char *hz_shuzi[10] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; //汉字0-9
static char strresult[200]; //保存转换后汉字
double temp; //保存输入钱数
double base = 1.0; //单位量整数(10,100,1000,10000...)
int n = 0; //输入的金额有多少位数
temp = money*100.0;
strcpy(strresult,"转换后金额为:");
if (temp <0.0) //输入钱数为负数
{
strcpy(strresult,"零元零角零分 ");
}
else
{
/* 如输入12345 temp = 1234500
1.base = 10, temp = 123450 n=1
2.base = 100, temp = 12345 n=2
3.base = 1000, temp = 1234 n=3
4.base = 10000, temp = 123 n=4
5.base = 100000, temp = 12 n=5
6.base = 1000000, temp = 1 n=6
temp<10 退出
*/
while (temp >= 10.0) //输入钱数大于10 计算输入钱数的位数
{
base = base*10;
temp = temp/10.0;
n++; // 输入的金额有多少位数
}
if (n >= 15) //位数大于15
{
strcpy(strresult,"输入金额超出范围了!");
}
else
{
/* 此时 temp=1234500 ,base = 1000000, n=6
n=7;d=1; temp=234500;base=100000 strcat(strresult,hz_shuzi[1]"壹"),strcat(strresult,danwei[7]"万")
n=6;
...
*/
temp = money*100.0;
for (int i=n; i>=0; i--) //根据位数转换
{
int d = (int)(temp/base); //求每位的数字式多少
temp = temp - base*(double)d; //除去最高位数字,减一位后的的数字
base = base/10.0;
strcat(strresult,hz_shuzi[d]); //字符连接
strcat(strresult,danwei[i]);
}
}
}
return strresult;
}
相关文章推荐
- 金额转换,阿拉伯数字的金额转换成中国传统大写汉字的形式
- JS数字金额转换为货币汉字形式
- JS数字金额转换为货币汉字形式
- JS数字金额转换为货币汉字形式
- JS实现将数字金额转换为大写人民币汉字的方法
- 数字金额转换汉字金额
- 将数字金额转换成大写人民币形式(网站收到的一个方法很不错)
- Javascript 数字金额 转换为 大写汉字金额
- 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)
- 笔试题:金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出
- 怎么实现金额转换,将阿拉伯数字金额转换成中国传统形式,例如1011变成一千零一拾一元整?
- 写一个程序,语言不限,能将人民币金额从阿拉伯数字转换为大写汉字表示。例如,把1234.56转换为壹仟贰佰叁拾肆圆零伍角陆分。
- 将数字金额转换成大写人民币形式
- [第一天]金额转换,阿拉伯数字的金额转换成中国传统的形式如
- 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出
- 金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整
- 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出
- 阿拉伯数字金额转换为中文汉字金额(补全)
- js-练习:输入阿拉伯数字的金额,转换成大写汉字输出
- 数字金额转换汉字金额