Ir para conteúdo
Fórum Script Brasil
  • 0

Apos A Virgula A Direita De Um Valor Float


Renato_agito10

Pergunta

Ola amigos,

Estou c/ uma duvida um tanto idiota mas que já esta me deixando c/ os nervos a flor da pele, em um sistema estou tentando converter float p/ string e considerar 2 casas decimais apos a virgula seja ela qual numero for. Estou fazendo da segunte forma:

Esta primeira linha pega um valor float do Banco e considera 2 casas apos a virgula

res2:=floattostrf(Modulo.MESFISVENVALTOTNOTREI.AsFloat,ffFixed,18,2);

Esta segunda linha retira todos os caracters que não seja numeros p/ gravar na string

res2:=FilterChars(res2,['0'..'9']);

Ate ai tudo bem mas a linha primeira esta excluindo os zeros a direita ou seja:

o valor

7044,00

fica

7044

E depois da conversão conforme os comandos deveira ficar Assim:

704400

outro valor:

7064,08

fica

706480

e deveria ficar

706408

esta rotina elimina os zeros apos a virgula sem valor e eu precisava de considerar 2 casas apos a virgula seja ela qual for e da maneira que se encontra no bd.

Obrigado.. Conto c/ a ajuda de vocês.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Use o FormatFloat. Veja:

procedure TForm1.Button1Click(Sender: TObject);
Var
  vValor: Double;
begin
  vValor := HKCurrEdit1.Value;
  Label1.Caption := FormatFloat('0.00',vValor);
end;

No caso, com vValor=7.044,80 o resultado será 7044,80... aí é só você tirar a vírgula para formatar do seu jeito...

Veja também...

vValor = 137044,80

FormatFloat('0000000000.000',vValor) resultará em 0000137044,800

Espero ter contribuido!

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

O problema que decifrei está mais complicado ainda.

os valores estao vindo do banco errado se alguém puder me ajudar estou chamando os valores da seguinte forma:

Modulo.valor.asstring;

ou

Modulo.valor.asfloat;

ou

Modulo.valor.asinteger;

ou

Modulo.valor.value;

etc..

todas essas formas me retornam assim:

o valor no banco esta da seguinte maneira:

EX:

3584,50 => chega p/ mim 3584,5

ou

3584,08 => chega p/ mim 3584,8

preciso que venha o valor p/ mim do jeito que se encontra no banco de dados...

alguém me ajude por favor..

Link para o comentário
Compartilhar em outros sites

  • 0

quando você utiliza:

VAL_STR := Modulo.valor.asstring;

a conversão será feita conforme você definir a propriedade DisplayFormat, se você não define nada, seria equivalente a utilizar a função FloatToStr, se você define, seria equivalente a utilizar a função FormatFloat, sendo que a melhor opção seria definir a propriedade DiplayFormat = '0.00', que é suficiente para retornar um número formatado com 2 casas decimais. Ex.: 20,4 -> 20,40; 0,3 -> 0,30

...estou tentando converter float p/ string e considerar 2 casas decimais apos a virgula seja ela qual numero for. Estou fazendo da segunte forma:

Esta primeira linha pega um valor float do Banco e considera 2 casas apos a virgula

res2:=floattostrf(Modulo.MESFISVENVALTOTNOTREI.AsFloat,ffFixed,18,2);

Esta segunda linha retira todos os caracters que não seja numeros p/ gravar na string

res2:=FilterChars(res2,['0'..'9']);

Ate ai tudo bem mas a linha primeira esta excluindo os zeros a direita ou seja:

o valor

7044,00

fica

7044

E depois da conversão conforme os comandos deveira ficar Assim:

704400

Aparentemente a conversão seria feita da forma como coloquei logo acima ou a sugerida pelo colega paulobergo. Mas se você espera ao final que seja retirada a vírgula e mantidas as duas casas que existiam após ela, então não seria melhor multiplicar por 100 e utilizar apenas a parte inteira?

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...