?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?
答案 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)