为什么十进制最小值不能转换为字符串?

Pau*_*els 3 .net c# format decimal

以下控制台应用程序崩溃:

decimal dec = decimal.MinValue;
string str = string.Format("{0:d}", dec);

Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

错误是:

Format specifier was invalid.
Run Code Online (Sandbox Code Playgroud)

鉴于我基本上将十进制格式化为十进制,这有什么问题?

Jon*_*eet 5

文档:

仅对整数类型支持此格式.

decimal 不是一个完整的类型.

格式类型被称为 "十进制" 的事实基本上是不幸的.这是因为它在基数10中格式化整数,但它与decimal 类型没有直接关系.

我怀疑你想要F,G或者N(或者根据你的实际要求可能还有别的东西,这些都不是很清楚).

  • @ pm_2:在这种情况下,答案基本上是"因为它不适合工作":) (3认同)