Decimal no Edit

Delphi

03/12/2003

OLá pessoal ....
Comecei a ´brincar´ com o Delphi + Interbase ... e estou bastante envolvida para aprender ....
Comecei fazendo um pequeno cadastro ....

A inclusao funcionou .... porém na consulta, atraves da query, jogo o valor dele num edit. Coloquei da seguinte forma:

EdtCalc.Text := floattostrf(QrySelCALC.value,ffFixed,5,2)

Só q ele esta trazendo o resultado como: 451,00.
Sendo q na realidade ele está cadastrado no Banco como 451,99 ... q olhei atraves do ISQL do Interbase.

Já alterei o Display Format e o Edit Format do campo da Query e nao funcionou.
Gostaria de uma colaboracao de voces para tentar resolver este problema.
Obrigada.

MartinhaM

[i:4b502590a1]Título em maíusculas editado comforme explicado nas regras de conduta[/i:4b502590a1]


Martinham

Martinham

Curtidas 0

Respostas

Afarias

Afarias

03/12/2003

se o valor é 451,999... e vc quer mostrar apenas com duas casas, é ´natural´ q o valor seja arredondado ficando 452,00 (bom, pelo menos é assim q a função FloatToStrF funciona!)



T+


GOSTEI 0
Luizfernando777

Luizfernando777

03/12/2003

Tenta isso
Caption := FormatCurr(´R$ #.´, 451.99 );


GOSTEI 0
Luizfernando777

Luizfernando777

03/12/2003

ou assim
para ficar com ,00 qdo for valor redondo
Caption := FormatCurr(´R$ #.00´, 451.00 );
R$ 451,00


GOSTEI 0
Martinham

Martinham

03/12/2003

Fiz um select no BD, modo interativo, e ele aparece como resultado:

CALC
linha 1 = 145,99
linha 2 = 165,15
linha 3 = 18,14

Só que quando jogo para um edit com o comando floattostr ou o floattostr ele simplesmente corta os decimas trazendo os numeros inteiros, seguido de zero. O que eu quero sao os valores q estao na coluna da tabela acima e não arredondamento ...

No aguardo.
Obrigada por enquanto ...

MartinhaM


GOSTEI 0
Luizfernando777

Luizfernando777

03/12/2003

Neste exemplo você não vai usar o
FloatToStr e nem o FloatToStrF e [color=red:77df742440][b:77df742440]sim[/b:77df742440][/color:77df742440]
o [b:77df742440][color=blue:77df742440]FormatCurr[/color:77df742440][/b:77df742440] dessa maneira
ex:
Edit1.Text := FormatCurr(´R$ #,00´, DBCampo.Value);
onde
´R$ ,00´ é o formato que vai aparecer no Edit
DBCampo.Value é o Campo do seu Select no qual tem o valor
que você precisa


GOSTEI 0
Luizfernando777

Luizfernando777

03/12/2003

desculpe o formato é assim: ´R$ #.00´


GOSTEI 0
Martinham

Martinham

03/12/2003

Me desculpe na demora em responder ...
Fiz uma viagem e estou retornando somente hoje ...

Neste exemplo você não vai usar o FloatToStr e nem o FloatToStrF e [color=red:e02a50e07f][b:e02a50e07f]sim[/b:e02a50e07f][/color:e02a50e07f] o [b:e02a50e07f][color=blue:e02a50e07f]FormatCurr[/color:e02a50e07f][/b:e02a50e07f] dessa maneira ex: Edit1.Text := FormatCurr(´R$ #,00´, DBCampo.Value); onde ´R$ ,00´ é o formato que vai aparecer no Edit DBCampo.Value é o Campo do seu Select no qual tem o valor que você precisa


Então, luiz fernando, fiz exatamente isto que vc me disse. e ´leia´ o que aconteceu ...
01. Faço a inclusao de um valor de 15,32
02. Confirmo e gravo no Interbase
03. Dou um Select no IBConsole e ele está gravado como 15,32
04. Passo o valor para o edit1.text (como voce citou) e ele aparece R$ 15

Oq estou fazendo de errado ??? Ou eu e que nao estou conseguindo entender .... acho q já estou meio q ´pirada´ :?
Tem alguma coisa no Delphi ou na configuracao do Interbase que nao esta legal ???


GOSTEI 0
Martinham

Martinham

03/12/2003

Alias ... o passo 4 aparece R$ 15,00 e nao e nao 15,32


GOSTEI 0
Dart

Dart

03/12/2003

Ola martinham

Desculpe e que estou com o mesmo problema.
E o seguinte. Qual e o tipo do campo da tabela do BD?
Criei uma tabela com um campo do tipo decimal,( Valor decimal(5,2),)

incluo um valor R$ 15,20
e na consulta aparece assim R$15,00


Ah. Eu uso um componente que controla casa decimais e converte string para Currency. Se vc quizer posso de mandar.

Dart


GOSTEI 0
Luizfernando777

Luizfernando777

03/12/2003

me manda seu e-mail que lhe mando um exemplo,
aí você pode tirar suas dúvidas.
luizfernando777@yahoo.com.br


GOSTEI 0
Martinham

Martinham

03/12/2003

Dart,
O campo no BD já criei como decimal e tb já alterei para numeric ...

Luiz Fernando,
Estou te mandando o meu e-mail.

Obrigada.
Martinham


GOSTEI 0
Sigelman

Sigelman

03/12/2003

Se od dados já estão guardados corretamente, então vc só precisa buscá-los.
Edit1.Text:=StrToFloat(query1.FieldByName(´campo´).AsFloat);

ou usar o formatFloat.
Edit1.Text:=FormatFloat(´#,.0´,query1.FieldByName(´campo´).AsFloat);


GOSTEI 0
Dart

Dart

03/12/2003

O problema acho que e na hora que grava.

Vc coloca um valor R$ 15,99.
E acho que grava assim 15,00.

Como resolver isso no interbase?


Dart


GOSTEI 0
Fred

Fred

03/12/2003

Este é o formato: ,#0.00

edit1.text := formatcurr(´,0.00´,edit1.text);

ai voce pode ate colocar o R$


GOSTEI 0
POSTAR