Utilizar números decimales en Visual C++

Por:ivancp,enviado 11 May 2008

Introducción

El control CEdit por defecto solo puede manipular texto y con la propiedad ES_NUMBER es posible aceptar solamente números pero sin números decimales. Pensando en esas deficiencias es que desarrollé un control basado en CEdit para poderlo utilizar en algunas aplicaciones que estaba desarrollando. Después de algunas modificaciones, he preparado la clase para compartirla con ustedes.

Funcionamiento de la clase.



  • Permite escribir números con punto decimal.
  • Se puede establecer y recuperar el numero decimal en el tipo de dato double.
  • Puede establecerse el tamaño de las posiciones decimales que van de 0 a 8.
  • Permite números negativos.
  • Todas las características están encapsuladas en la clase CNSDoubleEdit.

La clase CNSDoubleEdit.

La clase se inicializa con el valor cero por defecto y 2 posiciones decimales. Para cambiar el signo del numero solo se tiene que presionar el símbolo guión del teclado.

Como se trata de una clase derivada de CEdit (MFC) se puede instanciar en un dialogo.

CNSDoubleEdit ::SetDecimalPlaces

Ésta función establece la cantidad de lugares decimales que mostrará el control. Éste valor puede estar entre 0 y 8 (pueden modificar el código fuente para que pueda aceptar mas). En el parámetro nDecimals se indica el valor.

void SetDecimalPlaces(int nDecimals);

La función no devuelve ningún valor.

CNSDoubleEdit ::SetDoubleVal.

Establece un valor double dado en el parámetro dValue, y actualiza el valor en el control si éste está activo, el numero se formateará según los lugares decimales establecidos.

void SetDoubleVal(double dValue);

La función no devuelve ningún valor;

CNSDoubleEdit ::GetDoubleVal

Devuelve el valor actual del control en el tipo de dato double.

double GetDoubleVal();

Ejemplo de uso

Pueden descargar el código fuente de la clase y un proyecto de ejemplo de uso de la clase CNSDoubleEdit. La imagen siguiente muestra al control en acción.

NSDoubleEdit.gif
NSDoubleEdit en Acción


El código fuente se brinda tal como está, sería excelente que me escribas si vas a utilizarlo en aplicaciones comerciales.

Pueden escribir un post en el foro preparado para éste artículo para absolver dudas (ver los enlaces mas abajo).

Archivos Adjuntos

Otros Artículos en esta sección

¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »