【发布时间】:2011-09-12 12:31:04
【问题描述】:
好的,C#/.NET 大师,谁能告诉我为什么这个演员有效:
static void Main(string[] args)
{
int _int = 0;
decimal _decimal = 1;
_int = (int)_decimal;
Console.ReadLine();
}
...但这些都不行?
static void Main(string[] args)
{
int _int = 0;
decimal d = 1;
object _decimal = d;
_int = (int)_decimal;
Console.ReadLine();
}
static void Main(string[] args)
{
int _int = 0;
object _decimal = 1M;
_int = (int)_decimal;
Console.ReadLine();
}
只要我要转换的是明确声明的十进制类型,我就可以将小数转换为 int,但是当小数存储在对象类型中时,我不能将小数转换为 int?这是怎么回事?
注意:我知道我可能可以使用 Convert.ToInt32(),但我试图弄清楚这在这里不起作用。
【问题讨论】:
-
也可以分两步完成:"_int = (int) (decimal) _decimal"。
-
这个问题的答案似乎在相关链接之一下:Why can't I unbox an int as a decimal?