好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#实现金额转换成中文大写金额

本文实例为大家分享了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");

查看更多关于C#实现金额转换成中文大写金额的详细内容...

  阅读:61次