numeros reais no delphi
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.
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
Curtidas 0
Respostas
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...
vc pode usar o FormatFloat para transformar em String...isso deve evitar a mudança para Notaçao Cientifica...
GOSTEI 0
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.
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
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
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
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
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
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
Até a próxima,
Fabiana
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