> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://ajuda.groner.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 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.**


## ${color}[#000000](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](https://ajuda.groner.app/pt-br/article/o-que-sao-funcoes-ye23se/?ref=groner-suporte) personalizadas. Na Groner, usamos NCalc para calcular [custos extras](https://ajuda.groner.app/pt-br/article/o-que-sao-custos-extras-o496qg/?ref=groner-suporte) 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 🚀

<!-- groner-suporte:veja-tambem:inicio -->

## Veja também

- [Como criar fórmulas para Custos Extras](https://ajuda.groner.app/pt-br/article/como-criar-formulas-para-custos-extras-pn6h6k/)

<!-- groner-suporte:veja-tambem:fim -->
