表示双精度,如3位数的整数

时间:2012-10-12 10:00:41

标签: .net string-formatting

?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?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

找到另一种使用

的解决方案

?string.Format("{0:000}", 5.9)代替。

我不能使用“D”或“d”说明符,因为它是“仅支持:积分类型”。 (Standard Numeric Format Strings - MSDN