2017-02-14 358 views
-1

在MSDN文档他们说,“d”(或“d”)格式说明既是decimal numbersdates但实际上它只是格式化日期(见this question也):C#字符串“d”格式说明

string.Format("{0:d}", DateTime.Now) // Works 
string.Format("{0:d}", 12.998m) // Exception 

那么,这是什么原因,当是有可能用它来格式化小数?

+0

文档中它在哪里说,'D'符也是十进制数? –

+0

@JayGould - *格式字符串*区分大小写。你会得到完全相同的情况,从VB.Net进行相同的调用,这通常被认为是不区分大小写的语言。 –

+0

@ LasseV.Karlsen,看第一张表[这里](https://msdn.microsoft.com/en-us/library/dwhawy9k(v = vs.110).aspx#DFormatString),第二行,第二列,它清楚地说'Decimal';) – Sinatr

回答

4

您链接到该文档在这一点上很清楚 - D仅由整型

的“d”(或十进制)格式说明符将数字转换为十进制数字字符串支持(0 -9),如果数字为负数,则以负号为前缀。 此格式仅支持整数类型。

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

+0

谢谢Jamiec,我没有注意到,仍然比较混乱,虽然,在我看来。他们本可以用另一封信。 :) – bcl

+0

@drevis是,有一个名为“十进制”只对整型有用的格式有点.....混乱。 – Jamiec