Fórum Problema com roundto #258024
11/11/2004
0
é o seguinte no primeiro exemplo o roundto arredonda pra baixo:
f:=RoundTo(1183.245, -2);
e nesse outro pra Cima:
f:=RoundTo(1.235, -2);
Alguém sabe me dizer o pq ?Preciso que arredonde pra cima quando for >= 5 e pra baixo < 5 ...tentei usar setroundmode mas tb naum deu certo ....
Alexandresbo2
Curtir tópico
+ 0Posts
11/11/2004
Marcelo Saviski
Gostei + 0
11/11/2004
Alexandresbo2
Gostaria o seguinte :
f:=RoundTo(1183.245, -2); {retornar 1183,25 mas ele retorna 1183.24}
f:=RoundTo(1.235, -2); {aqui ele faz certo 1.24}até 4 arredondar pra baixo e maoir que 4 pra cima
Gostei + 0
12/11/2004
Alexandresbo2
Delphi 6 e 7 com roundto e os resultados foram preocupantes:
roundto(1.235,-2)-->1.24 roundto(1.245,-2)-->1.25 roundto(1.255,-2)-->1.25 roundto(1.265,-2)-->1.26 roundto(1.275,-2)-->1.27 roundto(111862.235,-2)-->111862.23 roundto(111862.245,-2)-->111862,24 roundto(111862.225,-2)-->111862,23
quer dizer naum faz arredondamento correto... o problema maior é que por curiosidade testei em ´VB´ e ´C´ e eles tb naum funcionam! O que fazer(até 4 arredondar pra baixo maior que 4 pra Cima)?
Gostei + 0
12/11/2004
Emerson Nascimento
function RoundTo2(const AValue: Double; const ADigit: TRoundToRange): Double;
var
    LFactor: Double;
begin
    LFactor := IntPower(10, ADigit);
    Result := Round((AValue / LFactor) + 0.05) * LFactor;
end;
Gostei + 0
31/05/2018
Fabricio Rocha
Gostei + 0
31/05/2018
Fabricio Rocha
function RoundTo2(const AValue: Double; const ADigit: TRoundToRange): Double;
var
    LFactor: Double;
begin
    LFactor := IntPower(10, ADigit);
    Result := Round((AValue / LFactor) + 0.05) * LFactor;
end;
Muito obrigado, cara! Me ajudou muito a sua função!
Gostei + 0
31/05/2018
Alberto
Já tive problemas com arrendondamento:
Eu estava usando uma variavel do tipo Extended, fiz vários testes
e nao conseguia descobrir onde estava o erro.
Troquei o tipo da variável para Currency e funcionou corretamente.
Faça um teste e verifique o que acontece no seu caso.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)