Truncar Numeros Reais
Senhorse, existe alguma função no delphi 5.0 Que podemos Truncar Um Numero , ou isto tem que ser feito na mão mesmo :?: :?: :?: :?:
Exemplo: N = 1,234567
Quero Duas casas ---->>>> n = 1,23
A alguma função Via Delphi :?: :?: :?: :?:
Exemplo: N = 1,234567
Quero Duas casas ---->>>> n = 1,23
A alguma função Via Delphi :?: :?: :?: :?:
Marco Salles
Curtidas 0
Respostas
Cristiam
01/04/2005
FormatFloat(´0.00´, N)
GOSTEI 0
Kotho
01/04/2005
Você quer truncar ou arredondar?
GOSTEI 0
Marco Salles
01/04/2005
Código:
FormatFloat(´0.00´, N)
Obrigado CristinaM , e acrescentado que para Truncar de Fato , devemos fazer :
n:=StrToFloat(FormatFloat(´0.00´,n));
Você quer truncar ou arredondar?
Mas eu to precisando dtb e de arredondar este numero :lol: :lol: :lol: :lol:
GOSTEI 0
Massuda
01/04/2005
Sem ter que converter para string e assumindo que você quer duas casas decimais...
var X: Double; .... // trunca o valor em duas casas decimais X := 0.01 * Trunc(100 * X); // arredonda o valor em duas casas decimais X := 0.01 * Round(100 * X);
GOSTEI 0
Marco Salles
01/04/2005
Obrigado massuda :P :P :P
É , tem que fazer na mão mesmo :evil: :evil: :evil: :evil: :evil:
Senhorse, existe alguma função no delphi 5.0 Que podemos Truncar Um Numero , ou isto tem que ser feito na mão mesmo
É , tem que fazer na mão mesmo :evil: :evil: :evil: :evil: :evil:
GOSTEI 0
Mkoch
01/04/2005
E se eu quise-se truncar com 1 ou 3 ou 4 ou 5 casas decimais seguindo este mesmo raciocínio.
Com 2 casas decimais (0.01) funciona legal.
Com 2 casas decimais (0.01) funciona legal.
GOSTEI 0
Ajnet
01/04/2005
boa dica
GOSTEI 0
Mkoch
01/04/2005
Se servir para alguém...
function TForm1.TruncMoney(const Valor: Currency; const Casas: Integer): Currency; var ValorS: String; NumInt, NumFrac, Num: String; Y: Integer; begin Result := 0; ValorS := CurrToStr(Valor); //Pegar a parte fracionária Y := Pos(DecimalSeparator, ValorS); if Y > 0 then begin NumInt := Copy(ValorS, 1, Y - 1); NumFrac := Copy(ValorS, Y + 1, Casas); end//if else begin NumInt := ValorS; NumFrac := ´´; end;//if //Preenche com zeros se necessário while Length(NumFrac) < Casas do NumFrac := NumFrac + ´0´; Num := NumInt; if Trim(NumFrac) <> ´´ then Num := Num + ´,´ + NumFrac; if not TryStrToCurr(Num, Result) then raise Exception.Create(QuotedStr(Num) + ´ não é um valor monetário valido.´); end;
GOSTEI 0
Ediclo Junior
01/04/2005
Caso alguém precise, segue função para trucar ou arredondar, informando a quantidade de casas decimais.
function TForm1.Truncar(pValor: Double; pCasasDecimais:Integer=2;pTruncar: Boolean=true): double;
var
fator : Extended;
begin
fator := Power(10,pCasasDecimais);
pValor := (fator * pValor);
if pTruncar
then pValor := Trunc(pValor)
else pValor := Round(pValor);
Result := (pValor * (1/fator));
end;
function TForm1.Truncar(pValor: Double; pCasasDecimais:Integer=2;pTruncar: Boolean=true): double;
var
fator : Extended;
begin
fator := Power(10,pCasasDecimais);
pValor := (fator * pValor);
if pTruncar
then pValor := Trunc(pValor)
else pValor := Round(pValor);
Result := (pValor * (1/fator));
end;
GOSTEI 0