您的位置:首页 > 编程语言 > C#

将货币格式由小写转换成大写的c#类

2007-08-18 10:32 435 查看
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;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐