Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么十进制最小值不转换为字符串?_C#_.net_Format_Decimal - Fatal编程技术网

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

C# 为什么十进制最小值不转换为字符串?,c#,.net,format,decimal,C#,.net,Format,Decimal,以下控制台应用程序崩溃: decimal dec = decimal.MinValue; string str = string.Format("{0:d}", dec); Console.WriteLine(str); 错误是: Format specifier was invalid. 考虑到我基本上是将十进制格式化为十进制,这有什么问题?来自: 只有整数类型才支持此格式 decimal不是整数类型 格式类型被称为“decimal”这一事实基本上是不幸的。这是因为它以10为基数格式化整

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

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

Console.WriteLine(str);
错误是:

Format specifier was invalid.
考虑到我基本上是将十进制格式化为十进制,这有什么问题?

来自:

只有整数类型才支持此格式

decimal
不是整数类型

格式类型被称为“decimal”这一事实基本上是不幸的。这是因为它以10为基数格式化整数,但它与
decimal
类型没有直接关系

我怀疑您想要
F
G
N
(或者根据您的实际需求,可能需要其他一些东西,这些东西并不十分清楚)。

关于将
十进制值转换为字符串:

format参数可以是任何有效的标准数字格式 除DRX之外的说明符,以及自定义 数字格式说明符。如果格式为null或空字符串,则 此实例的返回值的格式为常规数字 格式说明符(G)

所以,你可以用G

string str = string.Format("{0:G}", dec);

阅读了解更多信息。

问题在于格式标识符{0:d} 试一试

试一试

发件人:

format参数可以是除D、R和X之外的任何有效的标准数字格式说明符

在这里,它说的是
d
格式:

支持:仅限整数类型


因为格式说明符不符合您的想法。它仅适用于整数,尽管名称为
Decimal
。有关详细信息,请参阅。

我没有任何实际要求。我只是发现了这个,不知道为什么happening@pm_2:在这种情况下,答案基本上是“因为它不适合工作”:)这是一个很好的理由。你是对的,这个名字确实很不幸
string.Format("{0}", dec)
     decimal dec = decimal.MinValue;
     string str = string.Format("F: {0}", dec);

     Console.WriteLine(str);