¿Cómo convertir una cadena a int?
Frecuentes
Visto 29,110 veces
4 Respuestas
6
I love the assumption that the decimal separator always is a dot (.
). Será mejor que uses el InvariantCulture
, que contiene un NumberFormat que especifica explícitamente el punto como separador decimal:
Convert.ToInt32(Convert.ToDouble("12.00", CultureInfo.InvariantCulture));
Para aclarar: la mitad del mundo usa el punto, la otra mitad una coma. Cuando ejecuto esto en una PC con una cultura holandesa y no especifico un CultureInfo, toma el valor predeterminado del sistema (coma) y devuelve 1200
, ignorando el punto.
Si bien no afecta directamente su problema, es algo que no se puede enfatizar lo suficiente.
contestado el 22 de mayo de 12 a las 12:05
4
el error es porque la cadena es "12.00"
first convert string to double than in int
int a = Convert.ToInt32(Convert.ToDouble("12.00"));
or
SI solo quieres una parte entera de eso que
string s= "12.00";
string[] words = s.Split('.');
int a = Convert.ToInt32(words[0]);
También verifique los hilos ya respondidos en SO: C# Convertir Cadena Decimal a Int
contestado el 23 de mayo de 17 a las 11:05
3
"12.00" es un número decimal, no un número entero. Los números enteros no tienen porciones fraccionarias. Usar Convert.ToDouble
o similar para obtener un número de punto flotante, o recortar la parte decimal de la cadena (la .
y lo que sigue) antes de llamar Convert.ToInt32
.
contestado el 22 de mayo de 12 a las 12:05
0
The string "12.00" is a double/decimal value. Use Double.Parse() or Double.TryParse() or Convert.ToDouble().
contestado el 22 de mayo de 12 a las 12:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas asp.net or haz tu propia pregunta.
12.00 is not an integer, its in decimal format! - Hari Gillala