Bom dia, estou tentando fazer um código e preciso arredondar um double para cima se for maior q n.5
tentei usar o comando match.ceil(); porem ele não arredonda. Alguém sabe alguma solução?
Como arredondar um double em Java
W
3 Respostas
2 likes
A forma que conheço de trabalhar com arredondamento de forma mais prática é usando BigDecimal e RoundingMode, mas não sei se atende 100% o que vc quer, veja:
public class Main {
public static void main(String[] args) throws Exception {
System.out.println(round(1.3)); // 1.0
System.out.println(round(1.4)); // 1.0
System.out.println(round(1.5)); // 1.0
System.out.println(round(1.6)); // 2.0
}
private static double round(double num) {
return new BigDecimal(num)
.setScale(0, RoundingMode.HALF_DOWN)
.doubleValue();
}
}
Veja essa tabela na doc do RoundingMode:
https://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html
Lembrando que o melhor seria trabalhar diretamente com BigDecimal diretamente em vez de double primitivo. E para criar BigDecimal, e evitar problemas com precisão, o melhor é usar o construtor que receba uma String.
W
No meu caso eu precisaria q o 1.5 virasse 2. E sou iniciante não consegui compreender muito bem.
1 like
O Math.ceil arronda para cima. Isto imprime sempre 2:
System.out.print(Math.ceil(1.5));
System.out.print(Math.ceil(1.1));
System.out.print(Math.ceil(1.3));
System.out.print(Math.ceil(1.8));
O Math.round arrendonda como pretendes:
System.out.print(Math.round (1.5)); // 2
System.out.print(Math.round (1.1)); // 1
System.out.print(Math.round (1.3)); // 1
System.out.print(Math.round (1.8)); // 2
Criado 18 de agosto de 2021
Ultima resposta 18 de ago. de 2021
Respostas 3
Participantes 3
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo