Não consigo encontrar a resposta que estou procurando em relação a uma pergunta simples: como arredondar qualquer número para o mais próximo int
?
Por exemplo, sempre que o número for 0,2, 0,7, 0,22222, 0,4324, 0,99999, eu gostaria que o resultado fosse 1.
Até agora eu tenho
int b = (int) Math.ceil(a / 100);
Parece não estar fazendo o trabalho, no entanto.
a
tem um tipo inteiro.Respostas:
Math.ceil()
é a função correta para chamar. Eu estou supondo quea
é umint
, o que fariaa / 100
executar aritmética de número inteiro. Tente emMath.ceil(a / 100.0)
vez disso.Saídas:
Consulte http://ideone.com/yhT0l
fonte
a
é umint
neste exemplo e funciona como sugerido. Ao fazerint / float
o resultado é afloat
, como demonstrado na saída. Experimente o link.Eu não sei por que você está dividindo por 100, mas aqui minha suposição
int a;
ou
fonte
Isso parecia fazer o trabalho perfeito. Trabalhou toda vez.
fonte
10 anos depois, mas esse problema ainda me pegou.
Portanto, esta é a resposta para aqueles que são tarde demais como eu.
Isso não funciona
Causar o resultado
a / 100
acaba sendo um número inteiro e é arredondado para que o Math.ceil não possa fazer nada a respeito.Você deve evitar a operação arredondada com este
Agora funciona.
fonte
A maneira mais fácil de fazer isso é: você receberá um float ou o dobro e deseja convertê-lo para a rodada mais próxima, basta fazer
System.out.println((int)Math.ceil(yourfloat));
o trabalho perfeitamentefonte
Assumindo a como double e precisamos de um número arredondado sem casa decimal. Use a função Math.round ().
Isso vai como minha solução.
fonte