casas decimais fixas

Delphi

28/07/2010

Olá galera do comum problema que esta me matando ja fiz quase tudo, vamo lá preciso colocar uma mascara fixa para o campo com duas casas decimas de forma que nao arredonte o valor por exemplo : valores como 5 e mostrado no relatorio como 5 e deveria ser 5,00 o codigo que eu uso esta abaixo   QR_BASE.Caption   := formatfloat('00.00',(StrToFloat(qr_val_us.Caption) * (dmBase.qAuxLoc1.FIELDBYNAME('DOLAR_COMERCIAL').AsCurrency)));
     QRVAL_II.Caption  := formatfloat('00.00',(StrToFloat(QR_BASE.Caption) *  0.60));   help, valeu
 
Gustavo Matos

Gustavo Matos

Curtidas 0

Respostas

Thiago Pedro

Thiago Pedro

28/07/2010

Amigo, só para compreender a sua interrogação.
Você quer conseguir fazer isso no tratamento ou dentro do componente de edição ?
GOSTEI 0
Gustavo Matos

Gustavo Matos

28/07/2010

A ai Tiago valeu pelo apoio... Entao do usando ai o quick report este codigo passa pelo print do detail  
GOSTEI 0
Thiago Pedro

Thiago Pedro

28/07/2010

Tente tratar da seguinte maneira:

FormatFloat('###,###,##0.00', Valor);
GOSTEI 0
Gustavo Matos

Gustavo Matos

28/07/2010

entao mano quando faço isso que vc me falo acontece ter uma mensangem de erro de ponto flutuante nao valido dae o relatorio nao print ta foda  
GOSTEI 0
Thiago Pedro

Thiago Pedro

28/07/2010

Você tem que ver se este valor que você está pegando e/ou formatando realmente é número real.

Tente substituir essas linhas de código, e tente pegar o valor por exemplo, por um ShowMessage.

Vê se você consegue isso!
GOSTEI 0
Gustavo Matos

Gustavo Matos

28/07/2010

Valeu pela intençao brother vou fazer o teste e escrevo aki mas como faço pra trasforma em real no caso de nao for real porque eu ja usei o codigo que voce passo e deu erro de ponto flutuante nao valido...
GOSTEI 0
Gustavo Matos

Gustavo Matos

28/07/2010

no caso ai thiago ja tentei formatfloat para a label com displayformat nesse fielbyname('dolar_cormecial') e nao deu certo continuo arredondando o valor como 5.00 para 5 dai tentei usar strtofloat na label com ffnumber mas tambem deu erro de ponto flutuante nao valido..... dai tentei tratar a virgula do valor para ponto e vice versa sem sucesso com stringreplace
GOSTEI 0
Thiago Pedro

Thiago Pedro

28/07/2010

Pegue a string completa que você está teoricamente converter para real (float) e coloque corretamente ela aqui!

Se sua string for: 5.000.000

coloque aqui: 5.000.00
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

28/07/2010

Vamos lá, experimente trocar os QrLabel's por QrExpression e no seu evento onPrint tente fazer o calculo:   Value   := FloatToStr(StrToFloat(qr_val_us.Caption)) * (dmBase.qAuxLoc1.FIELDBYNAME('DOLAR_COMERCIAL').AsFloat));
    Value  := FloatToStr(StrToFloat(QR_BASE.Caption) *  0.60));   Dê uma olhada como está a configuração do sistema operacional para o separador de milhar e o separador decimal, para o separador de milhar deve ser usado.(Ponto) e para o separador decimal deve ser usado,(Virgula). Com estas configurações que informei acima a linha: Value  := FloatToStr(StrToFloat(QR_BASE.Caption) *  0.60)); Ficaria Value  := FloatToStr(StrToFloat(QR_BASE.Caption) *  0,60));   Em cada QrExpression coloque na propriedade Mask a mascara #,##0.00   Atenciosamente   Eriley      
GOSTEI 0
POSTAR