0
?string.Format("{0:D3}", 10/2)
{"Format specifier was invalid."}
    _HResult: -2146233033
    _message: "Format specifier was invalid."

我需要表示一个像 3 位整数一样的双精度数。说“5.2”应该表示为“005”,说“5.9”应该更好地表示为“006”,但即使是“005”也可以。

框架不支持像整数一样表示 Double 吗?

4

2 回答 2

2

用于Math.Round舍入为整数(可选),然后int在使用D3格式之前强制转换为:

string.Format("{0:D3}", (int)Math.Round(10/2));

强制转换以int防止出现“无效格式说明符”错误,这是因为您为浮点参数提供了整数格式选项。

于 2012-10-12T10:07:15.347 回答
0

找到了另一种使用的解决方案

?string.Format("{0:000}", 5.9)反而。

我不能使用“D”或“d”说明符,因为它是“支持者:仅整数类型”。(标准数字格式字符串 - MSDN

于 2012-10-12T10:20:50.843 回答