[英]What's the difference between ToString(“D2”) .ToString(“00”)
我剛剛注意到我的一些代碼使用:
ToString("D2")
和其他用途:
.ToString("00")
兩者都被用於將數字從0到99轉換為00到99之間的字符串。這是數字0-9具有前導零的字符串。
這兩種方法都做同樣的事情嗎?
這是一個有趣的問題。 到目前為止,我發現的唯一區別是:
格式“D2”僅接受整數類型值。 格式“00”也適用於浮點數/雙打。
支持者:僅限積分類型。
請考慮以下三行:
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.
“00”說明符使值四舍五入到小數點前面的最近數字,其中始終使用從零開始的舍入。 例如,使用“00”格式化34.5將導致值35。
精度說明符表示結果字符串中所需的最小位數。 如果需要,數字用左邊的零填充,以產生精度說明符給出的位數。
所以要回答你的問題,根據文檔,這些並沒有特別做同樣的事情,但在你的情況下,它們可能是有意的。 例如:
double d = 3.678;
Console.WriteLine(d.ToString("00"));
Console.WriteLine(4.ToString("D2"));
兩者都打印出04
。 我想這兩種格式正在被使用,因為D2
對雙打無效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.