Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-12-2005
Ganduke Ganduke is offline
Registrado
 
Registrado: dic 2005
Posts: 4
Poder: 0
Ganduke Va por buen camino
Unhappy Convertir una cadena

Saludos y haber si alguien puede echarme un cable.
bien explico recogo un dato de un listbox como string con el valor 00000008.30
y me gustaria convertirlo en un numero para realizar operaciones con el pero a la hora de convertirlo me da el error is not a valid integer value, he intentado como real como int64 ..... ya no se como solucionarlo (este valor es un descuento que tengo aplicar a un precio.) por favor me urge. Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 28-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Float

Hola Ganduke bienvenido al foro y felices fiestas

En Delphi si quieres usar números con coma flotante, no te sirven el tipo de dato Int, ya que es de tipo entero. Para eso se usa el tipo de dato Float (con longitud de 32 bits) y Double (con longitud de 64 bits).
De éste modo si intentas convertir la cadena string a número conservando la coma deberás hacer lo siguiente:
Código Delphi [-]
StrToFloat('00000008.30')

Espero haberme explicado bien.

Saludos
Responder Con Cita
  #3  
Antiguo 28-12-2005
Ganduke Ganduke is offline
Registrado
 
Registrado: dic 2005
Posts: 4
Poder: 0
Ganduke Va por buen camino
Muchas gracias por responder tan rapido pero sigue fallando
pvp2:=StrToFloat(listbox3.Items[n]); // en listbox es de donde cogo el valor pero sigue diciendo lo mismo.
Responder Con Cita
  #4  
Antiguo 28-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Lo siento, no lo veo.

Puedes poner una parte del código para que podamos esclarecer que está ocurriendo??

Seguro que te aparece el mismo error de "Is not a valid integer value"??

Saludos
Responder Con Cita
  #5  
Antiguo 28-12-2005
Ganduke Ganduke is offline
Registrado
 
Registrado: dic 2005
Posts: 4
Poder: 0
Ganduke Va por buen camino
Bueno si me da el error en vez de Int es Float, pero te comento
Lo mismo es que no declaro bien las variables??

Var
linea, opcion:string;
n,z: integer;
pvp2:double;
dto,pvpdto,pvp:real;
Begin
pvp2:=StrToFloat(listbox3.Items[n]);
y aqui es donde da el error.

Tambien te comento que puse directamente pvp2:=StrToFloat('00000008.30')
y me sigue dando el error
EConvertError with message "00000008.30" is not a valid floating point value.
Muchas gracias por ayudarme.
Responder Con Cita
  #6  
Antiguo 28-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Gracias Ganduke, ahora ya lo veo.

Declarar pvp2 como Double no está mal, pero puedes declararlo simplemente como Float.
El problema te lo está dando ahora porque la cadena contiene un '.' y no puede convertirlo para que sea un número. Es decir necesita que el string no contenga un punto, sino una coma.

Lo que puedes hacer es usar cualquiera de las funciones que tiene Delphi para substituir carácteres en una cadena. Yo a bote pronto he probado la funcion AnsiReplaceStr que está en la unit StrUtils

Y al final tu código quedaria de la siguiente manera:

Código Delphi [-]
  pvp2:=StrToFloat(AnsiReplaceStr(listbox3.Items[n], '.', ','));

Espero que así ya te sirva.

Saludos
Responder Con Cita
  #7  
Antiguo 28-12-2005
Ganduke Ganduke is offline
Registrado
 
Registrado: dic 2005
Posts: 4
Poder: 0
Ganduke Va por buen camino
Muchisimas gracias ya me funciona. Repito Muchas Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:58:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi