Arredondamento meio ponto
Olá pessoal,
Como faço pra arredondar dessa maneira com SQL ou de outra maneira.
Delphi 7 com mysql eu uso.
1.1 ate 1.5 = 1.5
1.6 ate 2 = 2
2.1 ate 2.5 = 2.5
2.6 ate 3 = 3
Como faço pra arredondar dessa maneira com SQL ou de outra maneira.
Delphi 7 com mysql eu uso.
1.1 ate 1.5 = 1.5
1.6 ate 2 = 2
2.1 ate 2.5 = 2.5
2.6 ate 3 = 3
Valdemi Ramos
Curtidas 0
Melhor post
Joel Rodrigues
20/08/2014
Obrigado pelo retorno, Valdemi.
Porém, sugiro que gaste um tempo para verificar o porque de não estar funcionando, pois é a melhor solução para este caso.
Abraço e bons códigos.
Porém, sugiro que gaste um tempo para verificar o porque de não estar funcionando, pois é a melhor solução para este caso.
Abraço e bons códigos.
GOSTEI 1
Mais Respostas
Joel Rodrigues
18/08/2014
Já testou a função Round do Delphi?
GOSTEI 0
Valdemi Ramos
18/08/2014
fiz uma função ontem! Obrigado!
Pra quem interessar!
function TForm1.Arredondar(Nota: Double): Double;
var numero, decimal, inteiro, soma : Double;
begin
try
inteiro := Int(nota);
decimal := RoundTo(frac(nota), -1);
if (decimal > 0) and (decimal <= 0.5) then
soma := 0.5;
if (decimal > 0.5) then
soma := 1;
if (decimal = 0.5) then
soma := 0.5;
Result := inteiro + soma;
except on e: Exception do
showMessage('Não foi possível arredondar!' + #13#10 + e.Message);
end;
end;
Pra quem interessar!
function TForm1.Arredondar(Nota: Double): Double;
var numero, decimal, inteiro, soma : Double;
begin
try
inteiro := Int(nota);
decimal := RoundTo(frac(nota), -1);
if (decimal > 0) and (decimal <= 0.5) then
soma := 0.5;
if (decimal > 0.5) then
soma := 1;
if (decimal = 0.5) then
soma := 0.5;
Result := inteiro + soma;
except on e: Exception do
showMessage('Não foi possível arredondar!' + #13#10 + e.Message);
end;
end;
GOSTEI 0
Marisiana Battistella
18/08/2014
Imagino que você esteja utilizando um SELECT para retornar os dados do banco...
Então você pode aplicar o ROUND direto no SQL e trazer os valores já formatados...
Exemplos:
Então você pode aplicar o ROUND direto no SQL e trazer os valores já formatados...
Exemplos:
SELECT ROUND(1.6667); # Resultado: 2 # Arredonda para não utilizar casas decimais SELECT ROUND(1.6667, 1); # Resultado: 1.7 # Arredonda para uma casa decimal SELECT ROUND(1.6667, 2); # Resultado: 1.67 # Arredonda para duas casas decimais SELECT ROUND(CAMPO, 2) FROM TABELA;
GOSTEI 0
Valdemi Ramos
18/08/2014
Tentei a round() do SQL, mas nao satisfazia o que queria!
teria que ser arredondamento como expliquei a cima tipo:
5.1 a 5.5 = 5.5
5.6 a 6 = 6.
Mas resolvi com a função mesmo!
Obrigado a todos!
teria que ser arredondamento como expliquei a cima tipo:
5.1 a 5.5 = 5.5
5.6 a 6 = 6.
Mas resolvi com a função mesmo!
Obrigado a todos!
GOSTEI 0
Marisiana Battistella
18/08/2014
Se vc utilizar esse exemplo deve funcionar...
Como vc tinha criado a instrução?
Quer compartilhar para ver se identificamos o porque de não ter funcionado?
SELECT ROUND(1.6667, 1);
Como vc tinha criado a instrução?
Quer compartilhar para ver se identificamos o porque de não ter funcionado?
GOSTEI 0
Valdemi Ramos
18/08/2014
dessa maneira:
select nome, mommat, round(((nt_1+rp1)/2), 1)as media from matriculas
GOSTEI 0
Joel Rodrigues
18/08/2014
Repita o select, trazendo também a média sem estar arredondada, assim você poderá comparar e ver se está ou não dando certo.
GOSTEI 0
Marisiana Battistella
18/08/2014
Achei estranho, porque eu testei o select aqui e funciona...
Não entendi porque não funcionou pra vc...
Não entendi porque não funcionou pra vc...
GOSTEI 0
Valdemi Ramos
18/08/2014
Tudo bem Marisiana,
Já resolvi com a função.
Obrigado a todos!
Já resolvi com a função.
Obrigado a todos!
GOSTEI 0