0

这怎么可能?

decimal d = ePhrase.MaxPrice; //ePhrase.MaxPrice==3 - Entity (edmx) object from sql 2012 express data field is decimal (18,2)
string t = d.ToString(); //Why does t=="3,00"?
d = (decimal)3.00;
t = d.ToString(); //t=="3"

问题是在一种情况下 t=="3,00",而另一种情况下 t=="3"?这两种情况有什么区别?

谢谢大家:

decimal d = ePhrase.MaxPrice;
  string t = d.ToString();//t=="3.00"
  d  = 4.0000m;
  t = d.ToString();//t=="4.0000"

问题是“d =(十进制)3.00” - 显然这不是真正的十进制

4

1 回答 1

6

如果您希望将数字实数文字视为decimal,请使用后缀mM

d = 3.00m;
t = d.ToString(); //t=="3"

这里:

d = (decimal)3.00;

不会将其视为,decimal但将被视为double

注意: 告诉"m"编译器将3.00视为小数,并且作为转换的一部分将在 originalValue 上发生隐式转换。

有关更多信息,请参阅此内容:C# 中的十进制

于 2012-12-21T05:29:07.120 回答