6

没有抛出异常,函数只是在这个语句处停止:

int productQuantity = Convert.ToInt32("1.00");

并返回。

将此浮点数转换为我做错了Int32什么?

注意:我正在运行BackgroundWorkerThread.

4

4 回答 4

8

在这种情况下会引发异常,它只是没有出现在调试器中。此字符串不是可转换为Int32类型的格式,因此会引发异常。如果 IDE 不合作,您可以通过将其包装在 try/catch 块中来验证这一点。

这里最好的方法可能是将字符串转换为 adouble然后手动将其转换为int. 由于精度差异,这确实为数据丢失打开了大门。但是鉴于您的输入是浮动格式,如果您希望最终产品成为int

于 2010-08-24T15:30:42.967 回答
6

您需要double先将其转换为 a,然后再转换为Int32.

int productQuantity = Convert.ToInt32(double.Parse("1.00"));
于 2010-08-24T15:41:57.467 回答
2

抛出异常,只是要看到它,您必须检查RunWorkerCompletedEventArgs.Error事件处理程序中的属性BackgroundWorker.RunWorkerCompleted

后台工作完成时从后台工作线程抛出的任何异常都分配给该属性。

于 2010-08-24T15:36:13.677 回答
0

FormatException 输入字符串的格式不正确。

于 2010-08-24T15:33:43.243 回答