尝试将float转换为Int32时,Convert.ToInt32(float)失败

6 c# int32 backgroundworker

抛出没有异常,函数在此语句中暂停:

int productQuantity = Convert.ToInt32("1.00");
Run Code Online (Sandbox Code Playgroud)

并返回.

把这个浮点数转换成我做错了Int32什么?

注意:我正在运行BackgroundWorkerThread.

Jar*_*Par 8

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

这里最好的方法可能是将字符串转换为a double然后手动将其转换为a int.由于精度差异,这确实打开了数据丢失的大门.但是如果您的输入采用浮动样式格式,那么如果您希望最终产品是一个,这是不可避免的int


Chr*_*ond 6

您需要将其转换为double第一个,然后转换为Int32.

int productQuantity = Convert.ToInt32(double.Parse("1.00"));
Run Code Online (Sandbox Code Playgroud)