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());