有一段程序,通过逐步执行发现在执行这样一句代码时出现异常。
this._Money = (float)IncomeDateBaseValue[1]; 其中_Money 为float型,IncomeDateBaseValue[1]为object型,在类型转换时出现异常,如果把_Money的类型改成double型 代码改成: this._Money = (double)IncomeDateBaseValue[1]; 这样就不会出现异常,实现预定功能正常。为什么?在线等!
this._Money = (float)IncomeDateBaseValue[1]; 其中_Money 为float型,IncomeDateBaseValue[1]为object型,在类型转换时出现异常,如果把_Money的类型改成double型 代码改成: this._Money = (double)IncomeDateBaseValue[1]; 这样就不会出现异常,实现预定功能正常。为什么?在线等!
this._Money = Convert.ToSingle(IncomeDateBaseValue[1]); 看看..
可以,没有出现异常!运行正确。是不是c#里浮点型强制转换不用(float),而用Convert.ToSingle()?
可以用float.Parse()或者Convert.To...之类的
this._Money = (float)(double)IncomeDateBaseValue[1];
this._Money = (float)(double)IncomeDateBaseValue[1]; 而只所以Convert.ToSingle(object)不会出错,是因为object先被转换为IConvertable,double恰好支持IConvertable。