Pregunta

Sin excepción es lanzada, la función sólo esté detenida en esta declaración:

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

y devoluciones.

¿Qué estoy haciendo mal para convertir a este objeto flotante a Int32?

Nota:. Estoy corriendo en un BackgroundWorkerThread

¿Fue útil?

Solución

Una excepción es introducida este caso es sólo que no se apareció en el depurador. Esta cadena no está en un formato que se puede convertir en un tipo Int32 y por lo tanto los tiros y excepción. Usted puede verificar esto envolviéndolo en un bloque try / catch si el IDE no está cooperando.

El mejor enfoque aquí es, probablemente, para convertir la cadena en un double y luego se echó hacia abajo de forma manual a un int. Esto hace abrir la puerta a la pérdida de datos debido a las diferencias de precisión. Pero teniendo en cuenta que su entrada está en un formato de estilo flotador esto es inevitable si desea que el producto final sea un int

Otros consejos

Es necesario para convertirlo en un double primero, y luego convertir a Int32.

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

Una excepción es lanzada, es sólo que para verlo hay que inspeccionar la propiedad RunWorkerCompletedEventArgs.Error en el controlador de eventos para BackgroundWorker.RunWorkerCompleted.

Cualquier excepción que se produce a partir de hilos del trabajador plano cuando el trabajo de fondo que se está haciendo es asignado a esa propiedad.

FormatException cadena de entrada no tiene el formato correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top