numeros reais no delphi

Delphi

13/02/2004

olá!
tenho em probblema com float´s no delphi. Ao escrever um numero com casas decimais (ex. 0.00005), aplicando funções tipo StrToFloat e FloatToStr, o número aparece formatado como um número cientifico (ex: 5E-5). ao enviar isto por SQL dá erro.

Será que existe algum parametro de compilação que possa ser usado para indicar a partir de que valor os números decimais são tranformados em números cientificos?
Ou poder trabalhar em SQL com os números em formato cientifico?
Agradeço a atenção de todos.


Vasques

Vasques

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

13/02/2004

Olá

vc pode usar o FormatFloat para transformar em String...isso deve evitar a mudança para Notaçao Cientifica...


GOSTEI 0
Vasques

Vasques

13/02/2004

olá Paulo.
desde já agradeço a sua ajuda.
o meu problema ao usar o FormateFloat ou FloatToStrF é não ter algo standard, isto é, tenho classes que desenvolvi que me permitem gravar os dados contidos em edit´s, mas em determinadas situações gravo directamente os dados que podem ser resultado de calculos, e o mais certo é que vai haver alguma altura em que vai esquecer de formatar o valor antes de o gravar, e isso irá dá origem a erros que poderão aparecer esporádicamente e quando a aplicação já estiver instalado nos clientes....

será que não existe algum parametro de compilação?

Obrigado.


GOSTEI 0
Falinden

Falinden

13/02/2004

Vasques,

eu estou tendo esse mesmo problema.
Inclusive, estou buscando uma solução junto ao suporte da Oracle.

Por acaso, vc está usando Oracle ?


Fabiana


GOSTEI 0
Vasques

Vasques

13/02/2004

olá Falinden

Eu nesta aplicação uso paradox, mas o problema não tem diretamente a ver com a base de dados, mas sim com o delphi, pois o resultado de uma operação é imediatamente formatado para numeração cientifica.

em todo o caso quando tiver alguma solução para o seu problema, se se lembram envie-me um email pode ser que ela resolva tambem o meu problema.

Obrigado pela atenção
sudações


GOSTEI 0
Falinden

Falinden

13/02/2004

Vasques, tudo bem ?

Realmente, eu constatei que o problema é mesmo no Delphi.

Ainda não cheguei a uma solução definitiva, porém consegui um paleativo.

O código transcrito abaixo resolve parcialmente* o nosso problema: no caso, estou formatando para um QRLabel1 de um relatório QuickReport.
*Com BDgrid, ainda não consegui.

Dê uma olhada e, qualquer pergunta, envie via p/ falinden@sama.com.br

procedure TForm2.QRBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); var Vcasas:integer; Vstrin:string; begin Vcasas := Pos(´,´,Query1MEUCAMPO.asstring); if Vcasas <> 0 then begin Vstrin := copy(Query1MEUCAMPO.asstring,Vcasas+1,length(Query1MEUCAMPO.asstring)-(Vcasas)); Vcasas := length(Vstrin); QRLabel1.Caption := FloatToStrF(Query1MEUCAMPO.asfloat, ffNumber, 18, Vcasas); end else QRLabel1.Caption := FloatToStrF(Query1MEUCAMPO.asfloat, ffNumber, 18, 0); end;


Até a próxima,

Fabiana


GOSTEI 0
POSTAR