不会抛出异常,函数只会在以下语句处停止:

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

并返回。

将这个浮点数转换为Int32,我在做错什么?

注意:我正在运行BackgroundWorkerThread

最佳答案

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

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

关于c# - 尝试将float转换为Int32时Convert.ToInt32(float)失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3558112/

10-11 11:58