Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-04-2009
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Exclamation Convertir coma en punto

Buenas amigos. Mi consulta consiste en que cuando quiero guardar un valor tipo float (2,5) tengo error en mysql, porq admite el valor 2.5 y no la coma.
Lo que estoy haciendo es tomar un valor de la base de datos (valor con coma) y sumarle o restarle algo (según corresponda), ese valor lo guardo en una variable tipo double y le sumo o resto el contenido de un edit pasado a float. El problema es que en delphi el tipo de dato FLOAT admite un valor con comas y no con punto.
No se si este haciendo lo mas óptimo pero deberia funcionar a mi modo de ver.
Desde ya muchas gracias
Código Delphi [-]
procedure TFcajainout.CajaEntrada();
var 
hoy:Tdatetime; ya, new:double;      
begin       
hoy:=now;           
       With DM.QCajainout do             
           begin              
             ParamByName ('fecha').Value:=Formatdatetime('yyyymmdd',hoy);
             ParamByName ('lega').Value:=Principal.Lega.Caption;
             ParamByName ('ptipo').Value:='1';
             ParamByName ('monto').Value:=monto.Text;
             ParamByName ('concepto').Value:=concepto.Text;
             ExecSQL;
            end;
            Dm.Tcaja.locate('id','1',[]);
            ya:=DM.tcaja.FieldByName('actual').asfloat;
            new:=ya+strtofloat(monto.text);
          With dm.Qcajaactual do             
             begin               
                 ParamByname ('nuevo').Value:=new;
                 ExecSQL;
             end;
    end;


Utilizo delphi 7, zeos y mysql6.

Última edición por lucho1981 fecha: 19-04-2009 a las 22:53:42.
Responder Con Cita
  #2  
Antiguo 20-04-2009
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Código Delphi [-]
 
 
SeparadorDecimal := '.';
 
FloatEnTextoConElSeparadorQueYoQuiera := StringReplace(FormatFloat('##,###0.00',Numero),',',SeparadorDecimal, [rfReplaceAll]));

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #3  
Antiguo 22-04-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Lightbulb

Cita:
Empezado por lucho1981 Ver Mensaje
Buenas amigos. Mi consulta consiste en que cuando quiero guardar un valor tipo float (2,5) tengo error en mysql, porq admite el valor 2.5 y no la coma.
Lo que estoy haciendo es tomar un valor de la base de datos (valor con coma) y sumarle o restarle algo (según corresponda), ese valor lo guardo en una variable tipo double y le sumo o resto el contenido de un edit pasado a float. El problema es que en delphi el tipo de dato FLOAT admite un valor con comas y no con punto.
No se si este haciendo lo mas óptimo pero deberia funcionar a mi modo de ver.
Desde ya muchas gracias
Código Delphi [-]
Código Delphi [-]
procedure TFcajainout.CajaEntrada();
var 
hoy:Tdatetime; ya, new:double;      
begin       
hoy:=now;           
       With DM.QCajainout do             
           begin              
             ParamByName ('fecha').Value:=Formatdatetime('yyyymmdd',hoy);
             ParamByName ('lega').Value:=Principal.Lega.Caption;
             ParamByName ('ptipo').Value:='1';
             ParamByName ('monto').Value:=monto.Text;
             ParamByName ('concepto').Value:=concepto.Text;
             ExecSQL;
            end;
            Dm.Tcaja.locate('id','1',[]);
            ya:=DM.tcaja.FieldByName('actual').asfloat;
            new:=ya+strtofloat(monto.text);
          With dm.Qcajaactual do             
             begin               
                 ParamByname ('nuevo').asfloat:=new;//creo que aqui era el problema                    

                  ExecSQL;
             end;
    end;
Pruebalo.....
Edito: Cuando obtengas o asignes valores a(de) los campos(Field) siempre trata de asignarselo haciendo uso de sus propiedades tales como:
.AsInteger para los integer,.AsFloat para los Float,.AsString para los string,etc. Trata en lo posible no usar la propiedad .Value pues es de tipo variant y creo que por ahi puede ocurrir algunos errores de tipos de datos.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 22-04-2009 a las 23:57:54.
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Coma presionando punto.. Delfino Varios 2 20-10-2007 11:47:11
cambiar el punto por la coma carlosll Varios 6 12-04-2007 19:11:57
Sustituir punto por coma Carlos Arevalo Varios 3 13-10-2005 23:19:40
xml punto coma carlomagno Varios 2 06-09-2004 11:49:35
Como le saco la coma o el punto a un número? DML Varios 4 23-06-2003 09:46:03


La franja horaria es GMT +2. Ahora son las 10:40:38.


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