尝试将float转换为Int32时,Convert.ToInt32(float)失败
抛出没有exception,函数只是在这个语句中停止:
int productQuantity = Convert.ToInt32("1.00");
并返回。
将此浮点数转换为Int32
我做错了什么?
注意:我在BackgroundWorkerThread
运行。
在这种情况下抛出exception,它只是没有在调试器中浮出水面。 此字符串的格式不能转换为Int32
类型,因此会抛出exception。 如果IDE不协作,您可以通过将其包装在try / catch块中来validation这一点。
这里最好的方法可能是将字符串转换为double
,然后手动将其转换为int
。 由于精度差异,这确实打开了数据丢失的大门。 但是如果您的输入是浮动样式,如果您希望最终产品是int
则这是不可避免的
您需要先将其转换为double
,然后转换为Int32
。
int productQuantity = Convert.ToInt32(double.Parse("1.00"));
抛出exception,只是要看到它必须检查BackgroundWorker.RunWorkerCompleted
的事件处理程序中的RunWorkerCompletedEventArgs.Error
属性。
在完成后台工作时从后台工作程序的线程抛出的任何exception都将分配给该属性。
FormatException输入字符串格式不正确。