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 open source libmpdecimal, 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 default;
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 default é 38.

emax number <optional>

O maior expoente possível. O valor default é 425000000.

emin number <optional>

O menor expoente possível. O valor default é -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

Returns:

True se o valor deste decimal é negativo

Type
boolean

isPositive()

Testa se este decimal é 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

lessThanOrEqual(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
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
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 places

Parameters:
Name Type Description
places number

número de casas decimais

Returns:

o valor decimal calculado

Type
BigDecimal