Java arredondar ou truncar Double com 2 casas decimais

Neste post vou mostrar como arredondar ou truncar um valor do tipo Double em Java com duas casas decimais

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java - TUTORIAL

Última atualização em: | 37597 Visualizações

É normal surgir a necessidade de arredondar ou truncar valores em java com 2 ou mais casas decimais.

Arredondar ou truncar

Apenas para entender, arredondar sempre vai fazer um arredondamento para o próximo número mais próximo (para cima ou para baixo). Por exemplo, se arredondar o valor 25,356 com duas casas decimais o valor resultante será: 25,36, já se neste mesmo exemplo resolvessemos truncar este valor, teriamos como resultado 25,35 já que desconsidera o próximo dígito.

Entendendo isso agora podemos ver como fazer isso em java.



Arredondando valor Double em Java

No primeiro exemplo vamos ver como arredondar o mesmo valor em java. Veja:

import java.text.DecimalFormat;

public class ArredondarDoubleMain {

    public static void main(String[] args) {
        arredondar(25.356);
    }

    private static void arredondar(Double valor) {
        System.out.println( valor );
        System.out.println( new DecimalFormat("#,##0.00").format(valor) );
    }
}

E o resultado será:

25.356
25,36

Truncar valor Double em Java

No segundo exemplo vamos ver como truncar o mesmo valor em java. Veja:

import java.math.RoundingMode;
import java.text.DecimalFormat;

public class ArredondarDoubleMain {

    public static void main(String[] args) {
        truncar(25.356);
    }

    private static void truncar(Double valor) {
        System.out.println( valor );
        DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");
        decimalFormat.setRoundingMode(RoundingMode.DOWN);
        System.out.println( decimalFormat.format(valor) );
    }
}

E o resultado será:

25.356
25,35

Note que ambos os métodos são muito semelhantes. Os dois fazem uso da classe DecimalFormat para formatar com o mesmo padrão #,##0.00. Porêm o truncar definimos o arredondamento para o tipo RoundingMode.DOWN o que faz que que corte o valor ignorando os próximos dígitos.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Apoiadores

Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!