¿Cómo convertir una cadena a int?

How to convert string to int?I know convert.ToInt32 is used.But it fail.Error is input string is not in proper format. String s1 = "12.00"

preguntado el 22 de mayo de 12 a las 12:05

12.00 is not an integer, its in decimal format! -

4 Respuestas

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

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

"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

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 or haz tu propia pregunta.