Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Convertir coma en punto (https://www.clubdelphi.com/foros/showthread.php?t=64791)

lucho1981 19-04-2009 22:40:13

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.

MaMu 20-04-2009 06:24:43

Código Delphi [-]
 
 
SeparadorDecimal := '.';
 
FloatEnTextoConElSeparadorQueYoQuiera := StringReplace(FormatFloat('##,###0.00',Numero),',',SeparadorDecimal, [rfReplaceAll]));

Saludos

rgstuamigo 22-04-2009 23:47:06

Cita:

Empezado por lucho1981 (Mensaje 345486)
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.....:cool:
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.;)


La franja horaria es GMT +2. Ahora son las 10:06:34.

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