簡體   English   中英

ToString(“D2”)之間有什么區別.ToString(“00”)

[英]What's the difference between ToString(“D2”) .ToString(“00”)

我剛剛注意到我的一些代碼使用:

ToString("D2")

和其他用途:

.ToString("00")

兩者都被用於將數字從0到99轉換為00到99之間的字符串。這是數字0-9具有前導零的字符串。

這兩種方法都做同樣的事情嗎?

這是一個有趣的問題。 到目前為止,我發現的唯一區別是:

格式“D2”僅接受整數類型值。 格式“00”也適用於浮點數/雙打。

格式D - MSDN

支持者:僅限積分類型。

請考慮以下三行:

double d = 23.05123d;
int i = 3;
Console.Write(i.ToString("D2"));
Console.Write(d.ToString("00"));
Console.Write(d.ToString("D2")); //this will result in exception: 
                                 //Format specifier was invalid.

MSDN自定義數字格式字符串

“00”說明符使值四舍五入到小數點前面的最近數字,其中始終使用從零開始的舍入。 例如,使用“00”格式化34.5將導致值35。

MSDN標准數字格式字符串

精度說明符表示結果字符串中所需的最小位數。 如果需要,數字用左邊的零填充,以產生精度說明符給出的位數。

所以要回答你的問題,根據文檔,這些並沒有特別做同樣的事情,但在你的情況下,它們可能是有意的。 例如:

double d = 3.678;
Console.WriteLine(d.ToString("00"));
Console.WriteLine(4.ToString("D2"));

兩者都打印出04 我想這兩種格式正在被使用,因為D2對雙打無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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