C# 字符串“D”格式说明符

bcl*_*bcl 0 c#

在 MSDN 文档中,他们说“D”(或“d”)格式说明符既适用于十进制数字也适用于日期,但实际上它仅格式化日期(另请参阅此问题):

string.Format("{0:d}", DateTime.Now) // Works
string.Format("{0:d}", 12.998m) // Exception
Run Code Online (Sandbox Code Playgroud)

那么,为什么会这样?什么时候可以使用它来格式化小数?

Jam*_*iec 6

您链接到的文档在这一点上非常清楚 -D仅受整数类型支持

“D”(或十进制)格式说明符将数字转换为十进制数字 (0-9) 字符串,如果数字为负数,则在前面加上减号。仅整型支持此格式。

来源:https ://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#DFormatString