Arredondamento de numeros

6 respostas
getAndSet

Olá amigos gostaria de arredondar um valor
tipo 2.99 para 3
ou 2.4 para 2

ja tentei o metodo da classe Math que é o
Math.round();
mais ele me retorna 2
agradeço desde a a ajuda!!! :smiley:

6 Respostas

xandroalmeida
System.out.println(Math.round(2.4)); // 2
System.out.println(Math.round(2.99)); // 3

Tente de novo, as vezes na segunda vez funciona. :smiley:

getAndSet

Olá vou te passar o que estou tentando fazer

int qtdLinhas = tabela.getRowCount();
double   percent =0.0D;
                percent = qtdLinhas / 100;
        int passagem = Math.round(percent)  , aux=0;
        System.out.println("passagem "+ passagem);
        System.out.println(Math.round(percent));
        System.out.println(qtdLinhas);

//obs sao 299 linhas
dividido por 100
da 2.99 quando vou arredondar retorna 2

A

cara, o problema não eh o método round…
eh o seu
percent = qtdLinhas / 100

pq qtdLinhas e 100 são int’s, e int dividido por int em java resulta nun int, e é ai que vem 2, sendo que no round ta dando Math.round(2), e não Math.round(2.99), podes debugar e ver por si mesmo.
o percent deve receber um dos numeros como double kra, faça o seguinte…
percent = qtdLinhas / 100d

espero ter esclarecido…

getAndSet

vlw mais tive que fazer mais uma modificação quando
vc coloca um valor double no Math.round(); ele retorna um longa
dai tive que colocar como float

vlw :smiley:

A

c for fazer isso entao passa a tua variável percent pra float também cara, porque se não pode ter um problemão com perda de precisão, acho melhor ainda vc deixar todos como double e na hora que chama o método round fazer um cast deste resultado pra int. É mais garantido.

A

*todos que eu digo é a variavel percent e o 100

Criado 23 de novembro de 2006
Ultima resposta 23 de nov. de 2006
Respostas 6
Participantes 3