Class: BigDecimal

@nginstack/engine/lib/math/BigDecimal~ BigDecimal


new BigDecimal(value)

O objeto BigDecimal armazena um imutável número decimal de precisão arbitrária, possibilitando a realização de operações aritméticas sem os erros de precisão que comumente ocorrem com números de ponto flutuante.

A implementação utiliza a biblioteca mpdecimal, também utilizada pela linguagem Python.

Esta classe também é publicada pelo Engine por meio da variável global BigDecimal.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Methods


<static> add(a, b)

Calcula o valor decimal resultado da soma de a com b.

Parameters:
Name Type Description
a number | BigDecimal | string

Um valor decimal.

b number | BigDecimal | string

Um valor decimal.

Returns:

O valor decimal calculado.

Type
BigDecimal

<static> config(params)

Altera algumas parametrizações dos objetos BigDecimal da sessão. Ao alterar estes parâmetros todos os objetos BigDecimal da sessão são impactados.

Parameters:
Name Type Description
params object

Os parâmetros

Properties
Name Type Argument Description
rounding number <optional>

Uma constante com o modo de arredondamento que deve ser utilizado quando necessário. Valores possíveis:

  • RoundingMode.HALF_EVEN: arredonda para o decimal mais próximo ou mantém o mesmo dígito.
  • RoundingMode.HALF_DOWN: arredonda para o decimal mais próximo ou em direção a zero (truncamento).
  • RoundingMode.HALF_UP: arredonda para o decimal mais próximo ou para longe do zero. É o modo padrão.
  • RoundingMode.FLOOR: arredonda para o menor valor decimal mais próximo.
  • RoundingMode.CEILING: arredonda para o maior valor decimal mais próximo.
  • RoundingMode.DOWN: arredonda em direção a zero (truncamento).
  • RoundingMode.UP: arredonda para longe de zero.
precision number <optional>

O número máximo de dígitos que pode ser armazenado. O valor padrão é 38.

emax number <optional>

O maior expoente possível. O valor padrão é 425000000.

emin number <optional>

O menor expoente possível. O valor padrão é -425000000.


<static> div(a, b)

Calcula o valor decimal resultado da divisão de a por b.

Parameters:
Name Type Description
a number | BigDecimal | string

Um valor decimal.

b number | BigDecimal | string

Um valor decimal.

Returns:

O valor decimal calculado.

Type
BigDecimal

<static> mul(a, b)

Calcula o valor decimal resultado da multiplicação de a por b.

Parameters:
Name Type Description
a number | BigDecimal | string

Um valor decimal.

b number | BigDecimal | string

Um valor decimal.

Returns:

O valor decimal calculado.

Type
BigDecimal

<static> sub(a, b)

Calcula o valor decimal resultado da subtração de a por b.

Parameters:
Name Type Description
a number | BigDecimal | string

Um valor decimal.

b number | BigDecimal | string

Um valor decimal.

Returns:

O valor decimal calculado.

Type
BigDecimal

abs()

Calcula o valor absoluto deste decimal.

Returns:

O valor absoluto deste decimal.

Type
BigDecimal

ceil()

Calcula o menor decimal inteiro que é maior ou igual a este decimal.

Returns:

O valor decimal calculado.

Type
BigDecimal

compareTo(value)

Compara este decimal com value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

1 se este decimal é maior do que value, -1 se é menor e 0 se é igual

Type
number

dividedBy(value)

Calcula a divisão deste decimal por value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

O resultado da divisão deste decimal por value.

Type
BigDecimal

dividedToIntegerBy(value)

Calcula a parte inteira da divisão Euclidiana deste decimal por value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

A parte inteira do resultado da divisão Euclidiana deste decimal por value.

Type
BigDecimal

equals(value)

Testa se este decimal é igual a value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

o boolean True se os dois decimais são iguais, ou False se são diferentes.

Type
boolean

floor()

Calcula o maior decimal inteiro que é menor ou igual a este decimal.

Returns:

O valor decimal calculado.

Type
BigDecimal

greaterThan(value)

Testa se este decimal é maior do que value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

true se este decimal é maior do que value.

Type
boolean

greaterThanOrEqualTo(value)

Testa se este decimal é maior ou igual a value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

true se este decimal é maior do que ou igual a value.

Type
boolean

isInfinite()

Testa se este decimal é infinito.

Returns:

True se o valor deste decimal é infinito.

Type
boolean

isNaN()

Testa se este decimal possui o valor NaN.

Returns:

True se o valor deste decimal é NaN.

Type
boolean

isNegative()

Testa se este decimal é negativo.

Diferentemente da biblioteca mpdecimal, na qual esta API é baseada, este método não considera que -0 é um número negativo.

Returns:

True se o valor deste decimal é negativo.

Type
boolean

isPositive()

Testa se este decimal é positivo.

Diferentemente da biblioteca mpdecimal, na qual esta API é baseada, este método não considera que +0 é um número positivo.

Returns:

True se o valor deste decimal é positivo.

Type
boolean

isZero()

Testa se este decimal é igual a zero.

Returns:

True se o valor deste decimal é igual a zero.

Type
boolean

lessThan(value)

Testa se este decimal é menor do que value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

true se este decimal é menor do que value.

Type
boolean

lessThanOrEqualTo(value)

Testa se este decimal é menor ou igual a value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

true se este decimal é menor ou igual a value.

Type
boolean

minus(value)

Calcula a subtração deste decimal por value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

O resultado da subtração deste decimal por value.

Type
BigDecimal

modulo(value)

Calcula o resto da divisão Euclidiana deste decimal por value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

O resto da divisão Euclidiana deste decimal por value.

Type
BigDecimal

negate()

Calcula o valor deste decimal com o sinal invertido.

Returns:

O valor negativado deste decimal, ou seja, com o sinal invertido.

Type
BigDecimal

plus(value)

Calcula a soma deste decimal com value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

O resultado da soma deste decimal com value.

Type
BigDecimal

pow(value)

Calcula o valor deste decimal potência de value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

O valor deste decimal potência de value.

Type
BigDecimal

quantize(value)

Calcula o valor decimal que é igual a este decimal, mas com o expoente de value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

O valor decimal calculado.

Type
BigDecimal

sqrt()

Calcula a raiz quadrada do valor deste decimal.

Returns:

A raiz quadrada.

Type
BigDecimal

times(value)

Calcula a multiplicação deste decimal por value.

Parameters:
Name Type Description
value number | BigDecimal | string

Um valor decimal.

Returns:

O resultado da multiplicação deste decimal por value.

Type
BigDecimal

toDecimalPlaces(places)

Calcula o valor deste decimal arredondado para o número de casas decimais.

Parameters:
Name Type Description
places number

Número de casas decimais.

Returns:

O valor decimal calculado.

Type
BigDecimal