Converte uma string em um formato monetário com duas casas decimais.
Código
{Testei uma função parecida que vi por aqui, mas não deu muito certo. Seguinte: Em um relatório (no QuickReport por exemplo) pode-se usar uma QRExpr para se somar um determinado DBText. Porém encontrei um caso em que o somatório dava errado. Foi mais simples aplicar o valor da soma (em tempo de execução à uma variável float) e converter o resultado em uma string e formata-la. Só que no relatório se a soma desse por exemplo 10,40 seria exibido 10,4. Com a função abaixo resolvi este problema.} Function Converte( c: String ): String ; var x: Integer; t: Integer; J: Integer; p : string; begin t := Length( c ); j:=0; for x := 1 to t do begin if c[x] = ',' then begin p := copy (c,x+1,2); J := length(trim(P)); end; end; if J < 2 then c := c + '0'; Converte := c; end; Para chamar a função, no ponto do programa e usar em um relatório: FrmRelatorio.QRLabelTotal.Caption := Converte(floattostr(A+B)); {A e B eram as variáveis que guardavam as somas (de cada uma query) no meu programa.}