Tengo una función que recibe parámetros de cadena y los convierte en enteros.
Para una conversión segura se usa int.TryParse().int.TryParse() devuelve falso para "#. ##"
public IEnumerable<object> ReportView(string param1, string param2)
{
int storeId = int.TryParse(param1, out storeId) ? storeId : 0;
int titleId = int.TryParse(param2, out titleId) ? titleId : 0;
IEnumerable<object> detailView = new Report().GetData(storeId, titleId);
return detailView;
}
llamada Función ReportView (“2”,”4”) -> int.TryParse analizar con éxito los números
función de llamada ReportView (‘2.00’,” 4.00”) -> int.TryParse falla para analizar los números
¿Por qué? ¿Alguna idea?
@Update
Lo siento muchachos, mi concepto era incorrecto. Soy nuevo en C#, pensé que Int.TryParse() devolvería la parte integral e ignoraría los decimales. Pero no lo hará, incluso Convert.ToInt32 ("cadena")
Gracias a todos.
También debe especificar una cultura. – CodesInChaos
No veo por qué esto es downvoted. La pregunta es claramente una pregunta para principiantes, pero está clara y razonablemente bien formulada. –
@moguzalp ¿Debería la gente recibir una votación negativa por no saber algo cuando hacen una pregunta? –