[英]formatting decimals using string format
public static string PadZero(this double number, int decimalPlaces)
{
var requiredFormat = "0." + "".PadRight(decimalPlaces, '0');
var something = $"{number:requiredFormat}";
return number.IsNotZero() ? something: string.Empty;
}
這是一個輔助函數,用於將零填充為雙精度 數 ,用戶可以傳遞需要通過decimalPlaces填充的零數。 上面的函數在我的單元測試中失敗,在所有測試用例中收到的輸出都是{requiredFormat}。 我剛剛更換了: var something = $"{number:0.00}";
使用通用變量requiredFormat ,可以處理任意數量的零填充。
您的示例有兩個問題。 首先, something
的價值不會產生可用於格式化數字的字符串。 第二個是你沒有使用something
來使用string.format
來執行數字格式。
首先,聲明:
var something = $"{number:requiredFormat}";
不會給你你想要的結果,這將是一個看起來像這樣的字符串:
{0:0.0000}
嘗試將代碼更改為:
var something = $"{{0:{requiredFormat}}}";
如果在執行該語句后執行Console.WriteLine(something)
,您可以檢查something
的值以確保它正是您要查找的內容。
之后,更改此行:
return number.IsNotZero() ? something: string.Empty;
閱讀:
return number.IsNotZero() ? string.Format(something, number) : string.Empty;
即使使用Interpolated Strings,您也必須構建變量格式並將其應用於兩個單獨的步驟。
希望有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.