public string GetCapitalization(double Money)


{
string CN_ZERO = "零";
string CN_ONE = "壹";
string CN_TWO = "贰";
string CN_THREE = "叁";
string CN_FOUR = "肆";
string CN_FIVE = "伍";
string CN_SIX = "陆";
string CN_SEVEN = "柒";
string CN_EIGHT = "捌";
string CN_NINE = "玖";
string CN_TEN = "拾";
string CN_HUNDRED = "佰";
string CN_THOUSAND = "仟";
string CN_TEN_THOUSAND = "万";
string CN_HUNDRED_MILLION = "亿";
string CN_SYMBOL = "";//人民币
string **_*OLLAR = "元";
string CN_TEN_CENT = "角";
string CN_CENT = "分";
string CN_INTEGER = "整";
string CN_Negative = "负";
//变量
string integral; //整数部分
string Float; //小数部分
string outputCharacters; //大写金额
int zeroCount;
int i;
int p;
string d;
int quotient;
int modulus;

string currencyDigits = Money.ToString("0.00");
string[] parts = currencyDigits.Split('.');
integral = parts[0];
Float = parts[1];


string[] digits =
{CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE};

string[] radices =
{"", CN_TEN, CN_HUNDRED, CN_THOUSAND};

string[] bigRadices =
{"", CN_TEN_THOUSAND, CN_HUNDRED_MILLION};

string[] decimals =
{CN_TEN_CENT, CN_CENT};
//开始转换
outputCharacters = "";
//整数的转换
if (int.Parse(integral) > 0)


{
zeroCount = 0;
for (i = 0; i < integral.Length; i++)


{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")


{
zeroCount++;
}
else


{
if (zeroCount > 0)


{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4)


{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
else if(int.Parse(integral) < 0)


{
zeroCount = 0;
outputCharacters += CN_Negative;
integral = integral.Substring(1,integral.Length);
for (i = 0; i < integral.Length; i++)


{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")


{
zeroCount++;
}
else


{
if (zeroCount > 0)


{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4)


{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
//小数的转换
if (Float != "")


{
for (i = 0; i < Float.Length; i++)


{
d = Float.Substring(i, 1);
if (d != "0")


{
outputCharacters += digits[int.Parse(d)] + decimals[i];
}
}
}
if (outputCharacters == "")


{
outputCharacters = CN_ZERO + **_*OLLAR;
}

if (int.Parse(Float) == 0)


{
outputCharacters += CN_INTEGER;
}
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}


{
string CN_ZERO = "零";
string CN_ONE = "壹";
string CN_TWO = "贰";
string CN_THREE = "叁";
string CN_FOUR = "肆";
string CN_FIVE = "伍";
string CN_SIX = "陆";
string CN_SEVEN = "柒";
string CN_EIGHT = "捌";
string CN_NINE = "玖";
string CN_TEN = "拾";
string CN_HUNDRED = "佰";
string CN_THOUSAND = "仟";
string CN_TEN_THOUSAND = "万";
string CN_HUNDRED_MILLION = "亿";
string CN_SYMBOL = "";//人民币
string **_*OLLAR = "元";
string CN_TEN_CENT = "角";
string CN_CENT = "分";
string CN_INTEGER = "整";
string CN_Negative = "负";
//变量
string integral; //整数部分
string Float; //小数部分
string outputCharacters; //大写金额
int zeroCount;
int i;
int p;
string d;
int quotient;
int modulus;
string currencyDigits = Money.ToString("0.00");
string[] parts = currencyDigits.Split('.');
integral = parts[0];
Float = parts[1];

string[] digits =
{CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE};
string[] radices =
{"", CN_TEN, CN_HUNDRED, CN_THOUSAND};
string[] bigRadices =
{"", CN_TEN_THOUSAND, CN_HUNDRED_MILLION};
string[] decimals =
{CN_TEN_CENT, CN_CENT};
//开始转换
outputCharacters = "";
//整数的转换
if (int.Parse(integral) > 0) 

{
zeroCount = 0;
for (i = 0; i < integral.Length; i++) 

{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0") 

{
zeroCount++;
}
else 

{
if (zeroCount > 0)

{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4) 

{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
else if(int.Parse(integral) < 0)

{
zeroCount = 0;
outputCharacters += CN_Negative;
integral = integral.Substring(1,integral.Length);
for (i = 0; i < integral.Length; i++) 

{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0") 

{
zeroCount++;
}
else 

{
if (zeroCount > 0)

{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4) 

{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
//小数的转换
if (Float != "") 

{
for (i = 0; i < Float.Length; i++) 

{
d = Float.Substring(i, 1);
if (d != "0") 

{
outputCharacters += digits[int.Parse(d)] + decimals[i];
}
}
}
if (outputCharacters == "") 

{
outputCharacters = CN_ZERO + **_*OLLAR;
}
if (int.Parse(Float) == 0) 

{
outputCharacters += CN_INTEGER;
}
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}
本文介绍了一个将数字金额转换为中文大写形式的方法。通过分析金额的整数和小数部分,使用特定规则将其转换成符合中文财务书写规范的大写格式。适用于财务系统中金额显示的需求。
1040

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



