当我尝试将 0.0 转换为 double 时出现 InvalidCastException
,为什么会这样?当我改为执行 (float)value
时没问题。
最佳答案
一般来说,当您将值类型放入对象
(称为装箱)时,您需要将它拆箱到完全相同的值类型。您不能改为转换为另一种类型。这就是这里发生的事情。
如果你真的想转换对象,你首先需要将它拆箱。假设您的原始值是一个 float
,然后再将其装箱到 object
中:
double d = (double) (float) value;
或者使用别人提出的方法,使用Convert
。这样做的好处是不必知道原始类型。
关于c# - 将 0.0 转换为 double 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113056/