Estaba trabajando en Project Euler 40, y estaba un poco molesto de que no hubiera int.Parse(char)
. No es un gran problema, pero hice algunas preguntas y alguien sugirió char.GetNumericValue
. GetNumericValue me parece un método muy extraño:¿Cuál es el problema con char.GetNumericValue?
- Toma un carácter como parámetro y devuelve ... ¿un doble?
- devoluciones -1.0 si el carbón no es '0' al '9'
¿Cuál es el razonamiento detrás de este método, y qué propósito tiene el retorno de una doble servir? Incluso encendí Reflector y miré InternalGetNumericValue, pero es como ver Lost: cada respuesta solo lleva a otra pregunta.
Tenga en cuenta que si sólo desea convertir un dígito a un int, 'int.Parse (c.ToString())' haría trabaja bien. No hay razón para usar GetNumericValue a menos que se encuentre en la situación que describe Adam Sills. O, por supuesto, restando ''0'' del char. – Joren
Sí, y eso es lo que estoy usando en realidad, pero la conversión a una cadena y luego el análisis en un int parece un poco prolijo y/o excesivo. También podría restar '0' del char, por supuesto, pero parece un poco 'magic string'y –