【发布时间】:2014-05-01 15:33:45
【问题描述】:
以下控制台应用程序崩溃:
decimal dec = decimal.MinValue;
string str = string.Format("{0:d}", dec);
Console.WriteLine(str);
错误是:
Format specifier was invalid.
鉴于我本质上是将小数格式化为小数,这有什么问题?
【问题讨论】:
以下控制台应用程序崩溃:
decimal dec = decimal.MinValue;
string str = string.Format("{0:d}", dec);
Console.WriteLine(str);
错误是:
Format specifier was invalid.
鉴于我本质上是将小数格式化为小数,这有什么问题?
【问题讨论】:
只有整型支持这种格式。
decimal 不是整数类型。
格式类型被称为“十进制”的事实基本上是不幸的。这是因为它以 10 为基数格式化整数,但它与 decimaltype 没有直接关系。
我怀疑你想要F、G 或N(或者其他可能的东西,根据你的实际要求,这不是很清楚)。
【讨论】:
问题在于格式标识符 {0:d} 试试
string.Format("{0}", dec)
【讨论】:
试试
decimal dec = decimal.MinValue;
string str = string.Format("F: {0}", dec);
Console.WriteLine(str);
【讨论】:
来自the MSDN help for Decimal.ToString():
格式参数可以是除 D、R 和 X 之外的任何有效的标准数字格式说明符
在the help for Standard Numeric Format Strings 中,它表示d 格式:
支持:仅整数类型。
【讨论】:
因为格式说明符并没有按照你的想法做。尽管名称为 Decimal,但它仅适用于整数。详情请参阅MSDN documentation。
【讨论】: