Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/02/2014, 09:02
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Validar un parámetro float

Hola:

Otra de mis dudas, de esas que me parecen muy tontas y luego no le veo una solución aceptable.

Tengo una función miembro de una clase para dar un valor a un miembro float.

Código C++:
Ver original
  1. void SetCantidad (float C) {Cantidad=C;}

Pero quiero que la función me haga la validación, para asegurarse de que se ha introducido un dato numérico.

He visto que aunque cin se "traga" en principio cualquier valor, y le hace un casting, se puede leer el fail que da, y en base a eso controlar si el valor introducido es válido o no, pero en principio, este sistema obligaría a que la comprobación se hiciera antes de hacer la llamada al método, y me gustaría que fuera el propio método el que hiciera tal comprobación, ya que entiendo que es parte de su misión.

Otra opción, que funcionaría, sería hacer la llamada así:

Código C++:
Ver original
  1. void SetCantidad (char* C){}
Y luego a esa cadena sí le podría hacer comprobaciones, y después pasarla a float, pero me parece algo enrevesado y chapucero.

Y no veo la forma de hacer la comprobación dentro de la función.
¿Alguna ayuda?