我刚刚注意到我的一些代码用途:
ToString("D2")
和其他用途:
.ToString("00")
两者都用于将 0 到 99 的数字转换为 00 到 99 的字符串。这是数字 0-9 有前导零的字符串。
这两种方法都做同样的事情吗?
我刚刚注意到我的一些代码用途:
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
对双打无效。