C++ 实现小写金额转化为大写金额
1.目标
输入小写数字字符串
输出大写金额字符串
类似:
2.实现代码与流程
对需要用到的字符:
string stringNum;
string unitInt[] = { "整", "元" };//整数单位
string unit[] = {"仟","", "拾","佰"};
string words[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };//大写数字
string unitDecimals[] = { "角", "分" };//小数单位
小数点前后书写规则不一样
(1)小数位
首先获得小数位
输入字符串_s 转化为double
double num= atof(_s.c_str());
取整:
int intNum = static_cast<int> (num);
小数部分:
double decimals = num - intNum;t<int> (num);
小数部分的几种情况:
string decimals_s;
if (num == 0)
{
return "";
}
if (decimals == 0)//没有小数部分
{
decimals_s = unitInt[0];
}
else
{
int num_01 = decimals / 0.1;
int num_001 = decimals / 0.01 - 10 * num_01;
if (num_001 == 0)
{
decimals_s = words[num_01] + unitDecimals[0];
}
else if (num_01 == 0)
{
dec