[Resolvido] Ajuda na conversão de Números

Olá!

Estou começando finalmente a aprender a programar. Depois de muito tempo.
Mesmo com 27 anos acho que não é tarde para buscar um sonho.

Mas vamos ao que interessa.

Fiz um código bem básico para cálculo do IMC, mas o retorno não é um numero exato.
Ex:

Digite seu Peso:130
Digite sua Altura:1,85
Seu IMC é --> 37.983929875821765

Quando coloco pra retornar int na var IMC ele retorna 37, mas eu gostaria de retornar arredondando para cima, já que está próximo ao 38, como fazer?

[code]import java.util.Scanner;

public class IMC {
public static void main (String args []){;
Scanner dados = new Scanner(System.in);
double peso, altura, imc;

		System.out.print("Digite seu Peso:");
			peso = dados.nextDouble();
	
		System.out.print("Digite sua Altura:");
			altura = dados.nextDouble();
	
	imc = peso/(Math.pow(altura, 2)); 							

	System.out.print("Seu IMC é --> " +imc);

}
}[/code]

Se não me engano é assim.

System.out.printf("%.2f", imc);

Assim vai ficar com 2 casas decimais.

Por favor, evite marcar os tópicos com informações inúteis, tais como [Java] ou informações sobre você (no título, precisamos de informações sobre sua dúvida, não sobre sua pessoa).
Leia nosso guia de postagem:

Para arredondar um número, use o método Math.round.

Math.ceil: Arredonda o valor pra cima;
Math.flor: Arredonda o valor pra baixo.

faça isso:

System.out.print("Seu IMC é --> " +Math.ceil(imc));

E Math.round faz o arredondamento que estamos acostumados a fazer.

Ou também…

private static double peso = 0, altura = 0; 
    private static Scanner dados;
    
    private static BigDecimal arredondaUP(double imc){
        return new BigDecimal(imc).setScale(0, RoundingMode.UP);        
    }
    
    public static void main(String[] args){
        dados = new Scanner(System.in);
        System.out.print("Digite seu Peso:");
        peso = dados.nextDouble();
        System.out.print("Digite sua Altura:");
        altura = dados.nextDouble();       
        System.out.print("Seu IMC é --> " + arredondaUP(peso / Math.pow(altura, 2)));       
    }

Essa é uma maneira extremamente cara e complexa de chegar no resultado…

Obrigado a todos,

fiz com o Math.round e deu certo.

Vou tentar as dicas das outras postagens para aprendizado.

E desculpa aí ViniGodoy, nos próximos vou saber como perguntar. :wink: