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

C#金额小写转换为大写

2015-05-13 13:53 375 查看
//传入需要转换的金额(字符串)

public static string MoneyToChinese(string strAmount) {

string functionReturnValue = null;

bool IsNegative = false; // 是否是负数

if (strAmount.Trim().Substring(0, 1) == "-") {

// 是负数则先转为正数

strAmount = strAmount.Trim().Remove(0, 1);

IsNegative = true;

}

string strLower = null;

string strUpart = null;

string strUpper = null;

int iTemp = 0;

// 保留两位小数123.489→123.49  123.4→123.4

strAmount = Math.Round(double.Parse(strAmount), 2).ToString();

if (strAmount.IndexOf(".") > 0) {

if (strAmount.IndexOf(".") == strAmount.Length - 2) {

strAmount = strAmount + "0";

}

}

else {

strAmount = strAmount + ".00";

}

strLower = strAmount;

iTemp = 1;

strUpper = "";

while (iTemp <= strLower.Length) {

switch (strLower.Substring(strLower.Length - iTemp, 1)) {

case ".":

strUpart = "圆";

break;

case "0":

strUpart = "零";

break;

case "1":

strUpart = "壹";

break;

case "2":

strUpart = "贰";

break;

case "3":

strUpart = "叁";

break;

case "4":

strUpart = "肆";

break;

case "5":

strUpart = "伍";

break;

case "6":

strUpart = "陆";

break;

case "7":

strUpart = "柒";

break;

case "8":

strUpart = "捌";

break;

case "9":

strUpart = "玖";

break;

}

switch (iTemp) {

case 1:

strUpart = strUpart + "分";

break;

case 2:

strUpart = strUpart + "角";

break;

case 3:

strUpart = strUpart + "";

break;

case 4:

strUpart = strUpart + "";

break;

case 5:

strUpart = strUpart + "拾";

break;

case 6:

strUpart = strUpart + "佰";

break;

case 7:

strUpart = strUpart + "仟";

break;

case 8:

strUpart = strUpart + "万";

break;

case 9:

strUpart = strUpart + "拾";

break;

case 10:

strUpart = strUpart + "佰";

break;

case 11:

strUpart = strUpart + "仟";

break;

case 12:

strUpart = strUpart + "亿";

break;

case 13:

strUpart = strUpart + "拾";

break;

case 14:

strUpart = strUpart + "佰";

break;

case 15:

strUpart = strUpart + "仟";

break;

case 16:

strUpart = strUpart + "万";

break;

default:

strUpart = strUpart + "";

break;

}

strUpper = strUpart + strUpper;

iTemp = iTemp + 1;

}

strUpper = strUpper.Replace("零拾", "零");

strUpper = strUpper.Replace("零佰", "零");

strUpper = strUpper.Replace("零仟", "零");

strUpper = strUpper.Replace("零零零", "零");

strUpper = strUpper.Replace("零零", "零");

strUpper = strUpper.Replace("零角零分", "整");

strUpper = strUpper.Replace("零分", "整");

strUpper = strUpper.Replace("零角", "零");

strUpper = strUpper.Replace("零亿零万零圆", "亿圆");

strUpper = strUpper.Replace("亿零万零圆", "亿圆");

strUpper = strUpper.Replace("零亿零万", "亿");

strUpper = strUpper.Replace("零万零圆", "万圆");

strUpper = strUpper.Replace("零亿", "亿");

strUpper = strUpper.Replace("零万", "万");

strUpper = strUpper.Replace("零圆", "圆");

strUpper = strUpper.Replace("零零", "零");

// 对壹圆以下的金额的处理

if (strUpper.Substring(0, 1) == "圆") {

strUpper = strUpper.Substring(1, strUpper.Length - 1);

}

if (strUpper.Substring(0, 1) == "零") {

strUpper = strUpper.Substring(1, strUpper.Length - 1);

}

if (strUpper.Substring(0, 1) == "角") {

strUpper = strUpper.Substring(1, strUpper.Length - 1);

}

if (strUpper.Substring(0, 1) == "分") {

strUpper = strUpper.Substring(1, strUpper.Length - 1);

}

if (strUpper.Substring(0, 1) == "整") {

strUpper = "零圆整";

}

functionReturnValue = strUpper;

if (IsNegative == true) {

return "负" + functionReturnValue;

}

else {

return functionReturnValue;

}

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