2010年4月30日 星期五

C# 格式化數字輸出

System.Globalization.NumberFormatInfo

可利用 System.Globalization.NumberFormatInfo 類別強制用 en-US 格式化數字,請注意 NumberDecimalDigits 與 CurrencyDecimalDigits 的差異

  • NumberDecimalDigits 可設定 ToString("N")  格式化輸出時的小數位數
  • CurrencyDecimalDigits 可設定 ToString("C") 格式化輸出時的小數位數

範例程式碼
using System;
using System.Collections.Generic;
using System.Text;
namespace Formatter
{    
    class Program    
    {        
        static void Main(string[] args)        
        {            
            System.Globalization.NumberFormatInfo provider = 
                new System.Globalization.CultureInfo("en-US", false).NumberFormat;            
            provider.NumberDecimalDigits = 0;                
            provider.CurrencyDecimalDigits = 4;            
            decimal data = 1234567890.00000000M;              
            string number = data.ToString("N", provider);            
            string currency = data.ToString("C", provider);            
            Console.WriteLine("data=" + data);
            Console.WriteLine("data.ToString(\"N\")=" + number);
            Console.WriteLine("data.ToString(\"C\")=" + currency);
        }
    }
}

執行結果
data=1234567890.00000000
data.ToString("N")=1,234,567,890
data.ToString("C")=$1,234,567,890.0000

相關連結