Convertir una cadena a double en c++ builder

La siguiente función recibe una cadena, elimina de la misma todos los caracteres que no sean números y regresa un double.

Acepta el caracter – al principio de la cadena para indicar números negativos y un punto para separar decimales (sólo se acepta el primer punto que contenga la cadena)

Ejemplo:  Si la función recibe la cadena “5-A-6200″, regresará un double cuyo valor será 56200.

Si la cadena no se puede convertir a un número, la función regresa el número cero.

double __fastcall TForm1::ConvierteANumero(String s_cadena)
{
String s_aux=””;
bool bl_negativo=false;

// Si la cadena que recibe está vacia, regresa 0
if (s_cadena==””)
s_aux=”0″;
else
{
// Checa el primer caracter para ver si es el signo menos
if (s_cadena.SubString(1,1)==”-“)
bl_negativo=true;

// Va recorriendo la cadena que recibe y pasando a s_aux sólo los números y el punto
for (int i_x=1;i_x <=s_cadena.Length();i_x++) { if (s_cadena.SubString(i_x,1)>= ‘0’ && s_cadena.SubString(i_x,1)<= '9') s_aux=s_aux+s_cadena.SubString(i_x,1); else { // Si el caracter es un punto, verifica que no exista ya un punto en la cadena if (s_cadena.SubString(i_x,1) == '.' && s_aux.Pos('.')==0) s_aux=s_aux+s_cadena.SubString(i_x,1); } } } if (bl_negativo) s_aux="-"+s_aux; // Si la cadena resultante está vacia, segnifica que s_cadena no contenía ningún número, sólo caracteres. así que se convierte a 0 if (s_aux.IsEmpty()) s_aux="0"; else if (s_aux.Length()==1 && !(s_aux >= ‘0’ && s_aux <= '9')) s_aux="0"; return s_aux.ToDouble(); } [/sourcecode]

Etiquetas: ,

Una respuesta to “Convertir una cadena a double en c++ builder”

  1. ale Says:

    buena información gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: