Ir para o conteúdo

DecimalUtils

Utilitário para operações com valores decimais (BigDecimal) com métodos encadeáveis, além de suporte para parsing, formatação, arredondamento, comparação e divisão em parcelas.

Pacote

br.com.multitec.utils


Instanciação

static DecimalUtils create(Object value)

Cria uma nova instância de DecimalUtils a partir de um valor (Number, String, BigDecimal, etc). Não aceita Double.


Operações Matemáticas

DecimalUtils sum(Object... values)

Soma os valores fornecidos à instância atual.

DecimalUtils subtract(Object... values)

Subtrai os valores fornecidos da instância atual.

DecimalUtils multiply(Object... values)

Multiplica os valores fornecidos com o valor atual.

DecimalUtils divide(Object... values)

Divide o valor atual pelos valores fornecidos utilizando a escala atual.

DecimalUtils round(int casasDecimais)

Arredonda o valor para o número de casas decimais usando RoundingMode.HALF_EVEN.

DecimalUtils trunc(int casasDecimais)

Trunca o valor para o número de casas decimais usando RoundingMode.FLOOR.

DecimalUtils negateIfPositive()

Inverte o sinal do valor se ele for positivo.

DecimalUtils setScale(MathContext scale)

Define a escala e modo de arredondamento para futuras operações.


Obtenção de Resultado

BigDecimal get()

Retorna o valor atual como BigDecimal.


Parcelamento

List<BigDecimal> part(int numeroDeParcelas)

Divide o valor atual em parcelas iguais, corrigindo arredondamentos na última.

List<BigDecimal> part(int numeroDeParcelas, int parcToAddRest)

Divide o valor e aplica o ajuste de arredondamento na parcela especificada por parcToAddRest.


Comparação

int compareTo(Object value)

Compara o valor atual com outro valor numérico.


Máximo e Mínimo

static BigDecimal max(BigDecimal... values)

Retorna o maior valor da lista.

static BigDecimal min(BigDecimal... values)

Retorna o menor valor da lista.


Parsing e Formatação

static DecimalUtils parse(String value)

Converte uma String formatada (ex: "1.234,56") para DecimalUtils.

String format()

Formata o valor com 2 casas decimais (min e max) para o padrão pt-BR.

String format(int maxFractionDigits, int minFractionDigits)

Formata o valor com controle das casas decimais para o padrão pt-BR.

String toString()

Sobrescreve toString() usando o método format().


Exemplo de uso

DecimalUtils valor = DecimalUtils.create("1000");
List<BigDecimal> parcelas = valor.part(3, 2);

System.out.println("Parcelas: " + parcelas);
System.out.println("Total formatado: " + valor.format());