1. 程式人生 > 實用技巧 >格式化數字,千分位符,有效數字,漢字顯示

格式化數字,千分位符,有效數字,漢字顯示

  public static class NumberToFormat
    {
        /// <summary>
        /// 數字轉換為漢字顯示
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static string NumberToChinese(int number)
        {
            string[] UNITS = { ""
, "", "", "", "", "", "", "", "", "", "", "" }; string[] NUMS = { "", "", "", "", "", "", "", "", "", "" }; if (number == 0) { return NUMS[0]; } string results = ""; for (int i = number.ToString().Length - 1
; i >= 0; i--) { int r = (int)(number / (Math.Pow(10, i))); results += NUMS[r % 10] + UNITS[i]; } results = results.Replace("零十", "") .Replace("零百", "") .Replace("零千", "
") .Replace("億萬", ""); results = Regex.Replace(results, "零([萬, 億])", "$1"); results = Regex.Replace(results, "零+", ""); if (results.StartsWith("一十")) { results = results.Substring(1); } cutzero: if (results.EndsWith("")) { results = results.Substring(0, results.Length - 1); if (results.EndsWith("")) { goto cutzero; } } return results; } /// <summary> /// 轉換為千分位符 /// </summary> /// <param name="number"></param> /// <returns></returns> public static string NumToN(decimal number) { //轉換為字串 string numstr = number.ToString(); if (numstr == "0") { numstr = "0"; } else if (numstr.Contains(".")) { //獲取整數部位 decimal intpart = Convert.ToDecimal(numstr.Substring(0, numstr.IndexOf("."))); if (intpart == 0) { } else { numstr = string.Format("{0}{1}", intpart.ToString("###,###"), numstr.Substring(numstr.IndexOf("."))); } } else { //0會變為"" numstr = number.ToString("###,###"); } return numstr; } /// <summary> /// 轉換為有效數字 /// </summary> /// <param name="number"></param> /// <returns></returns> public static decimal NumToG(decimal number) { //轉換為字串 string numstr = number.ToString("G0"); return Convert.ToDecimal(numstr); }