Jump to content
cavaco

zeos - ponto flutuante

Recommended Posts

cavaco

Uma vez que não sei mais o que fazer pedia mais aos colegas para me darem algumas ideias, porque efetivamente não sei o que mais o que fazer.

Em algumas conversões que fazia (resultado de querys) dava-me erro de conversão (ponto flutuante), descobri que se coloca-se o seguinte

  ThousandSeparator := ',';

  DecimalSeparator := '.'

a coisa funciona

mas agora nos campos Float através dbedit não escreve sequer o .

Se tento introduzir a , já aceita mas vai dar erro.

Assim estou aqui bloqueado com uma espécie de pescadinha de rabo na boca

isto acontece com varias versões de (ubuntu- sqlite - zeos).

Os meus agradecimentos a todos

Cavaco

Share this post


Link to post
Share on other sites
nunopicado

Não tenho a certeza, mas parece-me que estás a ser enganado pelo Zeos/Base de dados...

Ao definires o decimalseparator estás a faze-lo para dentro do delphi, mas o motor da base de dados continua a ter o seu predefinido.

Se não baterem os dois certo, nada feito...

Em vez de forçar a usar o . como separador decimal, porque não usar o que estiver predefinido, indicando ao utilizador qual é, se for preciso?

Mesmo porque se o utilizador estiver habituado a uma determinada noutros programas, vai-lhe fazer confusão se o teu for diferente.

A alternativa é configurar também a base de dados para usar o .

Não testei isto, mas penso que seja a origem do teu problema... Experimenta e diz algo depois! :)


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
cavaco

Obrigado Nuno pela dica.

Com base na tua dica fiz uma pesquisa e descobri http://www.bolzan.com.br/index.php?option=com_content&task=view&id=30&Itemid=2 assim parece que o problema não é só meu.

Não sei muito de programação aprendi pascal em delphi e fiz uns programas mas quase para uso próprio, mas lembra-me que se podia configurar o BDE facilmente. O que não acontece com o Lazarus / Sqlite

Este exemplo (e já fiz variadas versões) só funciona se o separador decimal for um .

se for uma , dá o erro ( "81.8606" is an invalid float.)

ZQSoma.Close;

ZQSoma.SQL.Clear;

ZQSoma.SQL.Add('Select Sum(Quantidade*Preco) As VTotalC From Custos');

ZQSoma.Open ;

              TotalC:=ZQSoma.FieldByName('VTotalC').AsCurrency;

          Label1.Caption:=Format('%.2f',[TotalC])+' €';     

O link dá uma ideia de como resolver, não me parece muito pratico, mas na falta de melhor solução vou tentar aplicar

os meus agradecimentos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.