• C#实现小写金额转大写金额


    好久没有写博客了。

    最近项目上用到小写转大写金额,公司同事还准备写一段代码来实现,后来发现架构上有现成的。

    其实在银行、进销存、CRM等系统中经常可能用到

      这个跟大家分享一下:

    小写金额转大写
    /// <summary>
            
    ///        获取金额的大写中文文字            返回:中文数字文字
            //        mvarOrDollar 数字金额大小, mstrLanguage 字符串语言 P:简体中文 C:繁体中文  
            /// </summary>
            
    /// <param name="mvarOrDollar"></param>
            
    /// <param name="mstrLanguage"></param>
            
    /// <returns></returns>
            public static string GetDollorStr(double mvarOrDollar)
            {
                
    //返回简体中文的中文描述
                return GetDollorStr(mvarOrDollar,"P");
            }
            
    public static string GetDollorStr(double mvarOrDollar,string mstrLanguage)
            {
                
    string t_word;
                
    string WLAMT;
                
    //            double tt;
                t_word = "";
                
    //            If mstrLanguage = "E" Or mstrLanguage = "e" Then
                
    //                t_word = t_word + noinword(Int(mvarOrDollar))
                
    //                If mvarOrDollar <> Int(mvarOrDollar) Then
                
    //                    tt = Int((mvarOrDollar - Int(mvarOrDollar)) * 100)
                
    //                    t_word = t_word & "And " & " Cents " & noinword(tt)
                
    //                End If
                
    //                 
                
    //            Else
                
    //            WLAMT = mvarOrDollar.ToString();
                WLAMT = StrFormat(mvarOrDollar, 122);
                
                
    for(int i = 0;i<12;i++)
                {                       
                    
    if (i != 9)
                        t_word 
    = t_word + SHRCHG(WLAMT, WLAMT.Substring(i, 1), i, mstrLanguage);
                     
                }
                
    string spacestr = "";
                t_word 
    = t_word + spacestr.PadLeft(40 - t_word.Length,' ');
                    
                
    //            End If
                return t_word.Trim();
            }

            
    private static string SHRCHG(string WLAMT, string WLCD,int WLLOC,string mstrLanguage)
            {
                
    string WLNAME;
                
    string WLDD;
                
    if (mstrLanguage == "C"
                    WLDD 
    = "货ㄕ珺窾ㄕ珺じ  àだ";
                
    else
                    
    //WLDD = "亿千百十万千百十元 角分";
                    WLDD = "亿仟佰拾万仟佰拾元 角分";
     
                WLNAME 
    = "    ";
                
    switch (WLCD)
                {
                    
    case " ":
                        WLNAME 
    = "   ";
                        
    break;
                    
    case "1":
                        
    //WLNAME = IIf(mstrLanguage = "C", "滁", "壹") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
    break;
                    
    case "2":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "禠", "贰") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                                            
                        
    break;
                    
    case "3":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "把", "叁") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
                        
    break;
                    
    case "4":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "竩", "肆") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
                        
    break;
                    
    case "5":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "ヮ", "伍") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
                        
    break;
                    
    case "6":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "嘲", "陆") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
                        
    break;
                    
    case "7":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "琺", "柒") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
                        
    break;
                    
    case "8":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "", "捌") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
    break;
                    
    case "9":
                        
    //'WLNAME = IIf(mstrLanguage = "C", "╤", "玖") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
                        if(mstrLanguage.Equals("C"))
                            WLNAME 
    = ""  + WLDD.Substring(WLLOC, 1);
                        
    else
                            WLNAME 
    = "" + WLDD.Substring(WLLOC, 1);
                        
    break;
                    
    case "0":
                        
    string locList = "123567";
                        
    if (locList.IndexOf(WLLOC.ToString().Trim()) > 0 && WLAMT.Substring(WLLOC + 11!= "0")
                            
    if(mstrLanguage.Equals("C"))
                                WLNAME 
    = "";
                            
    else
                                WLNAME 
    = "";
                        
    else
                            WLNAME 
    = "";
                        
    if (WLAMT.Substring(WLLOC,1== ".")
                            WLNAME 
    = WLDD.Substring(WLLOC, 1);
                        
                        
    if (WLLOC == 4 && (WLAMT.Substring(11!= "0" || WLAMT.Substring(21!= "0" || WLAMT.Substring(31!= "0"))
                            
    if(mstrLanguage.Equals("C"))
                                WLNAME 
    = "";
                            
    else
                                WLNAME 
    = "";
                        
    break;
                                                                    
                }                                                                                                                                                                                                                                                  
                
    return WLNAME.Trim();
            }

            
    private static string StrFormat(double Tlong,int Along,int Adec)
            {
                
    string tstr;
       
       
                tstr 
    = Tlong.ToString().Trim();
                
    if (tstr.IndexOf("."== -1)
                {
                    tstr 
    += ".00";
                }
                
    else
                {
                    
    if (tstr.IndexOf("."== 0)
                    {
                        tstr 
    = "0" + tstr;
                    }
                    
    if (tstr.IndexOf("."== tstr.Length - 1)  //0.  case
                    {
                        tstr 
    = tstr + "0";
                    }
                    
    if (tstr.Substring(tstr.IndexOf("."+ 1).Length == 1)
                    {
                        tstr 
    = tstr + "0";
                    }
                    
    else
                    {
                        tstr 
    = tstr.Substring(0, tstr.IndexOf("."+ 3);
                    }
                    
                }    
                
    if (tstr.Length < 12
                    tstr 
    = tstr.PadLeft(12,' ');
                
    return tstr;

            }
  • 相关阅读:
    20145229&20145316 《信息安全系统设计基础》 实验二 固件设计
    20145207 《Java 程序设计》实验三 (敏捷开发与XP实践)实验报告
    《Java 程序设计》课堂实践项目-mini dc
    20145207 《Java程序设计》第10周学习总结
    《Java 程序设计》课堂实践项目-命令行参数
    20145207 实验二《Java面向对象程序设计》实验报告
    20145207《Java程序设计》第9周学习总结
    20145207信息搜集与漏洞扫描
    20145207《Java程序设计》实验二(Java面向对象程序设计)实验报告
    20145207李祉昂《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验
  • 原文地址:https://www.cnblogs.com/cancanwyq/p/1694823.html
Copyright © 2020-2023  润新知