double Cost = 0.03;
var ttt = Cost.ToString("D3");
和
System.FormatException:格式说明符无效。
为什么?
http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#DFormatString
说没关系?
答案 0 :(得分:11)
再次查看您的MSDN link,只需查看同一文档中的几个部分:
“D”或“d”
十进制
结果:带有可选负号的整数位 支持者:仅限积分类型。
精度说明符:最小位数。
默认精度说明符:所需的最小位数 更多信息:十进制(“D”)格式说明符。1234(“D”) - > 1234
-1234(“D6”) - > -001234
(强调我的)
如果要确保带有浮点类型值的小数点 left 的三位数(这就是'D'的作用),则需要使用{{3} }。
Cost.ToString("000.########");
但根据你的评论,你真的想要它到小数点的正确,在这种情况下'F'字符串将起作用:
Cost.ToString("F3");
如果你担心领先的零,你可以这样做:
Cost.ToString(".000");
答案 1 :(得分:1)
根据您的评论(4.4546应显示为字符串“4.455”),这应该有效:
var cost = 4.4546d;
var ttt = cost.ToString("0.000");
答案 2 :(得分:0)
Propaally'Cost'是浮点值。 “D”是“十进制”格式说明符,不适用于浮点数。 也许你需要的是这篇文章:http://msdn.microsoft.com/en-us/library/dd260048(v=vs.110).aspx