Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Problemas FR vcl 6.4, Memo WideString a Float (https://www.clubdelphi.com/foros/showthread.php?t=95166)

michal 25-04-2021 20:27:37

Problemas FR vcl 6.4, Memo WideString a Float
 
Hola a todos


Necesito algun consejo con este problema que tengo:


Estoy usando el C++Builder de RAD Studio TOKYO 10.2.3, y SQLite
Necesito sumar el contenido de tres Memos(de una columna) en mi reporte, ese contenido está en formato de texto, y así está almacenado en las tablas relacionadas de mi Base de Datos, lo hice así para evitarme los problemas de coma o punto con el sist operativo y los números float. Al intentar sumar esos Memos usando por ejemplol var2 = Memo2->Text.ToDouble(); para convertirlos, obtengo el siguiente error: '3945.0' is not a valid floating point value.


Mi reporte está compuesto de 84 Memos, donde cada uno muestra el resultado de una consulta SQL del tipo SUM de los contenidos de varias tablas relacionadas.(todo eso funciona ok)

Si logro realizar la suma de esos Memos, me ahorro hacer 21 consultas de sumas de totales.


Ah, solo uso un objeto TSQLQuery en mi DataModule, hice una función a la que le paso los parametros: nombre del Memo, y la consulta en sí, al llamarla, me va llenando cada celda(Memo).


luego de 3 Memos en forma de columna hay un Memo que es la suma de los valores de los 3 Memos anteriores,



Alguien puede ayudarme?


Desde ya, Gracias

cloayza 26-04-2021 02:02:09

Estimado Michal, porque complicarse la existencia almacenando valores numéricos como texto, cual es el sentido de eso.

De seguro en la situación actual, el separador de decimales le está pasando la cuenta.

Primero le sugiero (talvez ya lo chequeo) que verifique cuales son los separadores de miles y decimales.

De igual forma usted puede indicarlos en su sistema a través del la variable global FormatSettings.

Código Delphi [-]
procedure TForm1.OnCreate(...)
begin
      FormatSettings.DecimalSeparator:='.';
      FormatSettings.ThousandSeparator :=',';

      {Estos afectaran a la aplicación, independiente de los asignados en la configuración del su sistema.}
end;

Saludos cordiales

michal 29-04-2021 20:26:12

Muchisimas Gracias
 
Me habia complicado tanto porque no sabía que se podia hacer lo me indicaste. Pero bueno ya veo que todo es posible en programación, con los conocimientos adecuados.
Ahora me queda reestructurar toda mi base de datos.


Una vez más mil gracias.


Saludos desde Cuba

cloayza 29-04-2021 22:31:01

Estimado Michal, el sentido de este foro es poder brindar una mano a quien necesita.

Me alegro mucho que haya encontrado la solución a su problema.

Un caluroso abrazo


La franja horaria es GMT +2. Ahora son las 06:57:52.

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