1. 程式人生 > >C# 數字轉換成大寫

C# 數字轉換成大寫

style cnblogs logs chinese exceptio dex ram sta substring

 1 /// <summary>
 2         /// 數字轉大寫
 3         /// </summary>
 4         /// <param name="type">單價/數量</param>
 5         /// <param name="Num">數字</param>
 6         /// <returns></returns>
 7         public static string GetChineseNum(string type,string Num)
 8         {
9 #region 10 try 11 { 12 string m_1, m_2, m_3, m_4, m_5, m_6, m_7, m_8, m_9; 13 m_1 = Num; 14 string numNum = "0123456789."; 15 string numChina = "零壹貳叁肆伍陸柒捌玖點"; 16 string numChinaWeigh = "
個拾佰仟萬拾佰仟億拾佰仟萬"; 17 if (Num.Substring(0, 1) == "0")//0123-->123 18 Num = Num.Substring(1, Num.Length-1); 19 if (!Num.Contains(.)) 20 Num += ".00"; 21 else//123.234 123.23 123.2 22 Num = Num.Substring(0
, Num.IndexOf(.) + 1 + (Num.Split(.)[1].Length > 2 ? 3 : Num.Split(.)[1].Length)); 23 m_1 = Num; 24 m_2 = m_1; 25 m_3 = m_4 = ""; 26 //m_2:1234-> 壹貳叁肆 27 for (int i = 0; i < 11; i++) 28 { 29 m_2 = m_2.Replace(numNum.Substring(i, 1), numChina.Substring(i, 1)); 30 } 31 //m_3:佰拾萬仟佰拾個 32 int iLen = m_1.Length; 33 if (m_1.IndexOf(.) > 0) 34 iLen = m_1.IndexOf(.);//獲取整數位數 35 for (int j = iLen; j >= 1; j--) 36 m_3 += numChinaWeigh.Substring(j - 1, 1); 37 //m_4:2行+3行 38 for (int i = 0; i < m_3.Length; i++) 39 m_4 += m_2.Substring(i, 1) + m_3.Substring(i, 1); 40 //m_5:4行去"0"後拾佰仟 41 m_5 = m_4; 42 m_5 = m_5.Replace("零拾", ""); 43 m_5 = m_5.Replace("零佰", ""); 44 m_5 = m_5.Replace("零仟", ""); 45 //m_6:00-> 0,000-> 0 46 m_6 = m_5; 47 for (int i = 0; i < iLen; i++) 48 m_6 = m_6.Replace("零零", ""); 49 //m_7:6行去億,萬,個位"0" 50 m_7 = m_6; 51 m_7 = m_7.Replace("億零萬零", "億零"); 52 m_7 = m_7.Replace("億零萬", "億零"); 53 m_7 = m_7.Replace("零億", ""); 54 m_7 = m_7.Replace("零萬", ""); 55 if (m_7.Length > 2) 56 m_7 = m_7.Replace("零個", ""); 57 //m_8:7行+2行小數-> 數目 58 m_8 = m_7; 59 m_8 = m_8.Replace("", ""); 60 if (m_2.Substring(m_2.Length - 3, 3) != "點零零") 61 m_8 += m_2.Substring(m_2.Length - 3, 3); 62 //m_9:7行+2行小數-> 價格 63 m_9 = m_7; 64 m_9 = m_9.Replace("", ""); 65 if (m_2.Substring(m_2.Length - 3, 3) != "點零零") 66 { 67 m_9 += m_2.Substring(m_2.Length - 2, 2); 68 m_9 = m_9.Insert(m_9.Length - 1, ""); 69 m_9 += ""; 70 } 71 else m_9 += ""; 72 if (m_9 != "零圓整") 73 m_9 = m_9.Replace("零圓", ""); 74 m_9 = m_9.Replace("零分", ""); 75 if (type == "數量") 76 return m_8; 77 else 78 return m_9; 79 } 80 catch (Exception ex) 81 { 82 return ex.Message; 83 } 84 #endregion 85 }

C# 數字轉換成大寫