Artigos sobre: Conceitos

Quais são as funções disponíveis nos Custos Extras?

Entenda tudo sobre as funções disponiveis para criação de fórmulas usando a biblioteca NCalc.



O que é NCalc?


NCalc é uma biblioteca avançada para avaliação de expressões matemáticas suportando uma ampla gama de operações. Ela aceita desde contas simples (como 1 + 1) até expressões com condições, variáveis e funções personalizadas. Na Groner, usamos NCalc para calcular custos extras baseando-se em parâmetros variáveis e condições específicas.

​Sintaxe Básica

A sintaxe do NCalc é intuitiva, facilitando a elaboração de expressões complexas. Por exemplo, uma simples adição se parece com isso: 1 + 1. Para cálculos de custos extras, a expressão pode se expandir para incorporar variáveis e funções, como [[CustoBase]] * (1 + [[TaxaExtra]]).​


🧠 Funções lógicas / condicionais


If(se)

Descrição: Retorna um valor com base em uma condição.


Exemplo: if([[kwPSimulacao]]<=10,[[kwPSimulacao]]*250,[[kwPSimulacao]]*200)


Neste exemplo o kWp do projeto será testado e multiplicado por R$ 250,00 caso seja menor ou igual a 10 e caso seja maior que 10 sera multiplicado por R$ 200,00.

ifs(ses)


Descrição: Avalia múltiplas condições em ordem e retorna o valor correspondente à primeira que for verdadeira. (Se nenhuma for, retorna o valor padrão.)


Exemplo: ifs([[QuantidadePlacasSimulacao]]<=25,[[QuantidadePlacasSimulacao]] *90, [[QuantidadePlacasSimulacao]]<=50,[[QuantidadePlacasSimulacao]]*80, [[QuantidadePlacasSimulacao]]*70)

Neste exemplo, o valor por placa varia conforme a quantidade total de placas no projeto:


  • Até 25 placas: R$ 90,00 por unidade
  • De 26 a 50 placas: R$ 80,00 por unidade
  • Acima de 50 placas: R$ 70,00 por unidade


🔢 Funções matemáticas


Ceiling

Descrição: Arredonda x para cima, para o inteiro mais próximo.

Exemplo: Ceiling(1.5) retorna 2.


Floor

Descrição: Arredonda x para baixo, para o inteiro mais próximo.

Exemplo: Floor(1.5) retorna 1.


Abs

Descrição: Retorna o valor absoluto de um número especificado.

Exemplo: Abs(-5) retorna 5.


Acos, Asin, Atan

Descrição: Estas funções retornam, respectivamente, os ângulos cujos cosseno, seno ou tangente são os números especificados.

Exemplo: Acos(1) retorna 0 (em radianos).


Cos, Sin, Tan

Descrição: Calculam, respectivamente, o cosseno, seno ou tangente de um ângulo especificado (em radianos).

Exemplo: Cos(0) retorna 1.


Exp

Descrição: Retorna e elevado à potência x (e^x).

Exemplo: Exp(1) retorna aproximadamente 2.71828.


Log, Log10

Descrição: Log retorna o logaritmo de um número em uma base especificada, enquanto Log10 retorna o logaritmo base 10.

Exemplo: Log(10, 10) e Log10(10) ambos retornam 1.


Pow

Descrição: Retorna um número especificado elevado à potência de outro número.

Exemplo: Pow(2, 3) retorna 8.


Sqrt

Descrição: Retorna a raiz quadrada de um número especificado.

Exemplo: Sqrt(4) retorna 2.


🔧Funções de Utilidade


Round

Descrição: Arredonda um valor para o número inteiro mais próximo ou um número específico de casas decimais.

Exemplo: Round(3.14159, 2) retorna 3.14.


Truncate

Descrição: Calcula a parte inteira de um número, descartando os dígitos fracionários.

Exemplo: Truncate(1.9) retorna 1.


Max, Min

Descrição: Max retorna o maior de dois números, enquanto Min retorna o menor.

Exemplo: Max(1, 2) retorna 2; Min(1, 2) retorna 1.


⚖️Funções Lógicas e de Comparação


In

Descrição: Verifica se um elemento está contido em um conjunto de valores.

Exemplo: In(3, 1, 2, 3) retorna True.


Conclusão


A biblioteca NCalc oferece um conjunto robusto de ferramentas matemáticas e de utilidade, permitindo aos desenvolvedores e analistas realizar cálculos complexos e avaliações condicionais de forma simples e eficaz. Com a prática e experimentação, as funções apresentadas podem ser combinadas e aplicadas de maneiras inovadoras para resolver desafios específicos em uma variedade de aplicações.



Em caso de dúvidas, nosso time de suporte está à disposição 🚀


Atualizado em: 04/01/2026

Este artigo foi útil?

Compartilhe seu feedback

Cancelar

Obrigado!