这怎么可能?
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"
Run Code Online (Sandbox Code Playgroud)
问题是在一种情况下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"
Run Code Online (Sandbox Code Playgroud)
问题是"d =(十进制)3.00" - 显然这不是真十进制
如果要将数字真实文字视为decimal,请使用后缀m或M
d = 3.00m;
t = d.ToString(); //t=="3"
Run Code Online (Sandbox Code Playgroud)
这里:
d = (decimal)3.00;
Run Code Online (Sandbox Code Playgroud)
不会把它视为,decimal但它将被视为double
注: 该"m"告诉编译器处理3.00为十进制和隐式转换会发生originalValue作为转换的一部分.
有关详细信息,请参阅此处:C#中的十进制
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |