ToString(" D3")不起作用

时间:2014-04-01 18:58:09

标签: c#

double Cost = 0.03;    
var ttt = Cost.ToString("D3");

System.FormatException:格式说明符无效。

为什么?

http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#DFormatString

说没关系?

3 个答案:

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