本文实例为大家分享了C#金额转换成中文大写金额的具体代码,供大家参考,具体内容如下
/// <summary>
/// 金额转换成中文大写金额
/// </summary>
/// <param name="LowerMoney">eg:10.74</param>
/// <returns></returns>
public static string MoneyToUpper( string LowerMoney)
{
string functionReturnValue = null ;
bool IsNegative = false ; // 是否是负数
if (LowerMoney.Trim().Substring(0, 1) == "-" )
{
// 是负数则先转为正数
LowerMoney = LowerMoney.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
LowerMoney = Math.Round( double .Parse(LowerMoney), 2).ToString();
if (LowerMoney.IndexOf( "." ) > 0)
{
if (LowerMoney.IndexOf( "." ) == LowerMoney.Length - 2)
{
LowerMoney = LowerMoney + "0" ;
}
}
else
{
LowerMoney = LowerMoney + ".00" ;
}
strLower = LowerMoney;
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;
}
}
decimal PriceSum = 32957.2654;
调用 var PriceSumChinese = MoneyToUpper(PriceSum.ToString());
结果:叁万贰仟玖佰伍拾柒圆贰角柒分
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/i-mengli/archive/2018/08/24/9530329.html
dy("nrwz");