Tengo una cadena que a veces tiene comas separando el número como 1,500
y necesito convertir esto a un Int, actualmente está lanzando una excepción, ¿alguien me puede decir cómo solucionar este problema? de modo que a veces puedo ingresar números con comas y otras veces sin comas y aún se convertirán.Convert.ToInt32() una cadena con Comas
Respuesta
Usted podría utilizar int.Parse
y añadir la NumberStyles.AllowThousands
bandera:
int num = int.Parse(toParse, NumberStyles.AllowThousands);
O int.TryParse
que le permite saber si la operación tuvo éxito:
int num;
if (int.TryParse(toParse, NumberStyles.AllowThousands,
CultureInfo.InvariantCulture, out num))
{
// parse successful, use 'num'
}
Estás bromeando, .Net puede hacer eso? ¡Bonito! – Will
Bien, gracias. –
¡Me encanta la bandera! Simplemente dése cuenta de su existencia ... gracias @CMS – nonintanon
Puede hacer replace(';', '')
antes de convertirlo a int.
Gracias, no sabía que era tan simple en C# ... pensé que tenía que hacer RegEx para reemplazarlos. –
Si no tiene que preocuparse por las reglas de varios países (por ejemplo, algunos utilizan una coma como posición decimal en lugar de separador de miles), simplemente elimine primero las comas.
por ejemplo
string nastyNumber = "1,234";
int result = int.Parse(nastyNumber.Replace(",", ""));
(sustituir int con doble punto si es necesario flotante)
Puede usar Decimal.Parse()
y luego emitir el resultado a int
. Esto también funciona con la cultura actual, o puede especificar un CultureInfo
para usar. No es necesario manejar manualmente comas, puntos decimales, etc., todo está integrado en .NET.
puede reemplazar la comas con String.Empty
antes de llamar Convert.ToInt32()
, o se puede ver en el uso Int32.Parse()
o Int32.TryParse()
con NumberStyles.AllowThousands
como uno de los parámetros.
¿Qué pasa con las sugerencias de fuerza bruta de la eliminación de comas ?? ¿Qué pasa si la cadena es algo así como "1,1,1"? ¿Es este un número válido? Eliminar comas lo convertiría en un número válido y haría la conversión semánticamente incorrecta.
Existe una razón por la que existen NumberStyles y el método Int.Parse() puede analizar con o sin relación con el estilo del número.
'int.Parse (" 1,1,1 ", NumberStyles.AllowThousands);' returns '111', por lo que .NET cree que es un número válido. – nunzabar
Usted puede utilizar el código
int num = Strings.Replace(str, ",", string.Empty);
Esto reemplaza todas las ocurrencias de "" con "" (cadena vacía). Entonces 1,000,000 vueltas 1000000
- 1. Convertir cadena con comas para flotar
- 2. Convert.ToInt32 versus TryParse
- 3. ¿Cómo dividir una cadena separada por comas?
- 4. Crear una cadena delimitada por comas
- 5. Cómo crear una lista <T> a partir de una cadena separada por comas?
- 6. Convert.ToInt32 - Mantener precedente cero
- 7. Int32.Parse() VS Convert.ToInt32()?
- 8. ¿Cómo creo una cadena delimitada por comas de una ArrayList?
- 9. ¿Cómo convierto una cadena separada por comas en una matriz?
- 10. ¿Cómo harías una cadena separada por comas de una lista?
- 11. ¿Por qué existe Convert.ToInt32 (DateTime)?
- 12. Necesita exportar cadena con comas correctamente en un archivo CSV
- 13. mejor uso int.Parse o Convert.ToInt32
- 14. ¿Cómo dividir una cadena separada por comas usando JavaScript?
- 15. String array como una cadena separada por comas en XAML
- 16. JavaScript - Sustituir todas las comas en una cadena
- 17. ¿Cómo dividir una cadena por comas posicionadas fuera de paréntesis?
- 18. valores de moneda dividida cadena por comas
- 19. ¿Cómo puedo eliminar comas y puntos de una cadena?
- 20. Búsqueda de MySQL valores en una cadena separada por comas
- 21. cadena separada por comas a la matriz
- 22. ¿Combinan comas con MySQL?
- 23. Convertir flotador para cadena separada por comas
- 24. ¿Cómo convertir una cadena numérica con comas de valor de posición en un número entero?
- 25. ¿Cómo obtengo un bucle for para trabajar con una cadena delimitada por comas?
- 26. ¿Por qué no se rompe el trabajo de palabras en una cadena larga con comas?
- 27. Dividir una cadena en comas que no figuran entre comillas dobles con un giro
- 28. ¿Por qué usar Convert.ToInt32 sobre el casting?
- 29. explotar personajes con comas y - (guión)
- 30. PHP: matriz separada con comas
¿No le gustaría convertir esto a dos? Use String.Split(). –
Eliminar las comas antes de la conversión. –
tengo el mismo problema @ big-z. He eliminado las comas: bool totalPriceConversionResult = decimal.TryParse (txtTotalPrice.Text.Replace (",", ""), out totalPrice) y convertirlo a: TotalPrice = totalPriceConversionResult? Convert.ToInt32 (totalPrice): 0. pero me da un valor de 0 vaue. http://stackoverflow.com/questions/37359906 –