Usuario
Valores fuera de rango

Pregunta
-
Hola a todos,
Estoy realizando una aplicacion con Visual C++ usando Windows Forms.
En unos determinados textBox de mi aplicacion tengo que controlar el valor de unas entradas analogicas...y algunas veces se me van fuera de rango...por ejemplo este valor 3.5467867E-37
Como podria controlar que estos valores no me apareciesen, y que en su lugar poder escribir en el textBox "Out of Range"???
He probado con un simple if(valor<0.0001 || valor>1000) escribir "Out of Range" else escribir valor, pero no funciona!!
Gracias de antemano a todos
Todas las respuestas
-
¿Qué tipo de dato es valor? Porque debería funcionar. ¿Qué ves en eldepurador sobre la variable cuando se ha ido de rango?On Wed, 23 Jun 2010 15:56:48 +0000, Marodal wrote:>>>Hola a todos,>>Estoy realizando una aplicacion con Visual C++ usando Windows Forms.>>En unos determinados textBox de mi aplicacion tengo que controlar el valor de unas entradas analogicas...y algunas veces se me van fuera de rango...por ejemplo este valor 3.5467867E-37>>Como podria controlar que estos valores no me apareciesen, y que en su lugar poder escribir en el textBox "Out of Range"???>>He probado con un simple if(valor<0.0001 || valor>1000) escribir "Out of Range" else escribir valor, pero no funciona!!>>>>Gracias de antemano a todos>>
MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/ -
Se trata de un valor de tipo float.
He intentado corregir esto mediante el siguiente codigo:
if(entrada1>-0.0001 && entrada1<10000)
MonitorEntradasAnalogicasEntrada1->Text = Convert::ToString(entrada1);
else
MonitorEntradasAnalogicasEntrada1->Text = "Out of Range";
Los valores que aparecen son por ejemplo:
3'761535E-37
No entiendo por que no captura la condicion el if
Un saludo
-
Vale, ya esta, lo siento, hay que refinar el bloque if
if
(((entrada1>0.0001) && (entrada1<1000)) || ((entrada1<-0.0001)&& (entrada1>-1000)) || (entrada1 == 0))
MonitorEntradasAnalogicasEntrada1->Text= Convert::ToString(entrada1);
//System::Math::Round(entrada1,2));
else
MonitorEntradasAnalogicasEntrada1->Text =
"Out of Range";
GRacias