¿Cómo puedo verificar de manera realista si una variable es doble?
Necesita ser más clara acerca de lo que está realmente tratando de hacer aquí. No creo que estés preguntando qué crees que estás preguntando, y vale la pena ser consciente de las diferencias en la terminología.
Si usted tiene una variable que se declara a ser de tipo double
, entonces es definitivamente un double
.Si usted tiene una variable que se declara de tipo object
, ValueType
o una de las interfaces que soporta, a continuación, puede utilizar
if (value is double)
Pero parece que lo que realmente quiere saber es si un el valor de cadena es parseable como double
. Para eso, debe usar double.TryParse
- pero usted también necesita pensar en qué cultura le interesa. Por ejemplo, ¿podría ver "15,5" como un double
válido? Los usuarios europeos podrían, pero los usuarios de EE. UU. Probablemente no lo harían. ¿Quieres permitir miles de separadores?
Le recomiendo encarecidamente que utilice la sobrecarga que toma un IFormatProvider
y utilice la referencia cultural adecuada. Incluso si la cultura que le interesa es el valor predeterminado, vale la pena ser explícito al respecto.
es probable que desee:
double result;
// For suitable values of text, style and culture...
bool valid = double.TryParse(text, style, culture, out result);
A continuación, utilice la variable valid
para determinar si es o no realmente se analiza correctamente. Si valid
es verdadero, entonces el valor de análisis es result
. Si valid
es falso, result
será 0.
"variable" es la palabra incorrecta. Está intentando determinar si el texto se puede convertir a un valor de coma flotante. Si estuviera determinando el tipo de una variable, usaría variable.GetType() == typeof (double) – Brannon