簡體   English   中英

使用字符串格式格式化小數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM