C# .ToString 字串轉換小數、百分比表示

利用標準數值格式字串方法,將ToString() 內存數值進行格式化,轉換成指定數值格式。

本次使用格式規範 "P" or "p" 轉換成百分比顯示,範例如下: 

//宣告小數型別變數 Number 
deciaml Number = 0.123456789M;

//進行字串格式化
string N1 = Number.ToString("P");  //12.35%; 單獨 P 預設有效小數位數為2位。
string N2 = Number.ToString("P0"); //12%;    P + 數字,數字代表有效小數位數。
string N3 = Number.ToString("P1"); //12.3%;  
string N4 = Number.ToString("P2"); //12.35%; P 格式化規範為四捨五入制,12.345% => 12.35%
string N5 = Number.ToString("P3"); //12.346%

除了上述較常規的字串格式化方式外,還可以使用以下幾種方法達到相同目的:

decimal Number = 0.12345M;

//使用自定義數值表示方法
string N6 = Number.ToString("0.0000%"); //12.3450%  此方法會根據0數目將不足位數補0
string N7 = Number.ToString("0.####%"); //12.345%   此方法不會進行補0

//除上述方法外,也可以用以下小數位數控制方法,乘以100並加上百分比符號
//使用Format()方法定義小數位數
string N8 = String.Format("{0:N4}%", Number * 100); //12.3450% 此方法會進行補0

//使用格式規範 F 定義小數位數,但此方法用在百分比轉換有點多此一舉,不太建議
string N9 = (Number * 100).ToString("F4") + "%"; //12.3450% 此方法會進行補0

//以上方法均採四捨五入進位

參考資料:
1. 標準數值格式字串 | Microsoft Docs
https://docs.microsoft.com/zh-tw/dotnet/standard/base-types/standard-numeric-format-strings#FFormatString

2. 自訂數值格式字串 | Microsoft Docs
https://docs.microsoft.com/zh-tw/dotnet/standard/base-types/custom-numeric-format-strings