# Funciones numéricas

## Contenido

[abs](#abs)

[bound](#bound)

[cut](#cut)

[max](#max)

[min](#min)

[net](#net)

[numberToString](#numbertostring)

[percentage](#percentage)

[random](#random)

[round](#round)

[stringToNumber](#stringtonumber)

## Numéricas

Conjunto de [Funciones de fórmula ](https://doc.velneo.com/25/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas)que nos permiten operar con números.

### abs

Devuelve el valor absoluto de x.

#### Sintaxis

abs(x)

#### Parámetros

**x**

Expresión numérica cuyo valor absoluto será calculado. Este parámetro puede ser un número, una variable, un campo, el retorno de una función, etc. La función devuelve el valor absoluto del número pasado como parámetro.

#### Ejemplo

`abs(-357)` = 357

### bound

Ajusta el dato a los límites mínimo y máximo.

#### Sintaxis

bound(min, dato, max)

#### Parámetros

**min**

Expresión numérica, límite inicial del rango.

**dato**

Expresión numérica cuyo valor será calculado entre los limites.

**max**

Expresión numérica, límite final del rango.

Estos parámetros pueden ser una constante numérica, una variable, un campo, el retorno de una función, etc.

#### Ejemplo

`bound(0, 357, 100 )` =100

### cut

Recorta decimales de x.

#### Sintaxis

cut( x, decimales)

#### Parámetros

**x**

Expresión numérica cuyo valor será recortado.

**decimales (opcional)**

Expresión numérica con la posición del decimal a cortar. Si no se especifica nada, se tomará el valor 0.

Estos parámetros pueden ser un número, una variable, un campo, el retorno de una función, etc.

#### Ejemplo

`cut(3.3057, 3 )` = 3.305

### max

Devuelve el mayor de los dos.

#### Sintaxis

max(dato1, dato2)

#### Parámetros

**dato1**

Expresión numérica que se considerará en la operación.

**dato2**

Expresión numérica que se considerará en la operación.

Estos parámetros pueden ser un número constante, una variable, un campo, el retorno de una función, etc.

#### Ejemplo

`max( 7, 3 )` = 7

### min

Devuelve el menor de los dos.

#### Sintaxis

min(dato1, dato2)

#### Parámetros

**dato1**

Expresión numérica que se considerará en la operación.

**dato2**

Expresión numérica que se considerará en la operación.

Estos parámetros pueden ser una constante numérica, una variable, un campo, el retorno de una función, etc.

#### Ejemplo

`min( 7, 3 )` = 3

### net

Devuelve el neto del importe, es decir el importe menos el porcentaje

#### Sintaxis

net(importe, porcentaje)

#### Parámetros

**importe**

Expresión numérica a la que se va a quitar el porcentaje.

**porcentaje**

Expresión numérica con el porcentaje que restaremos al importe. Este dato debe estar comprendido entre 0 y 100

Estos parámetros pueden ser una constante, una variable, un campo, el retorno de una función, etc.

#### Ejemplo

`net( 100, 30 )` = 70

### numberToString

Convierte un numero en una cadena según el formato y la precisión que especifiquemos.

#### Sintaxis

numberToString(numero, formato, precisión)

#### Parámetros

**numero**

Expresión numérica a partir de la cual queremos generar una cadena. Este número puede ser un literal, una variable, un campo, el retorno de una función, etc.

**formato**

Cadena de formato que especifica como crear la cadena a partir del número. Las cadenas de formato posibles son:

* **f** (\[-]9.9)
* **L** (Formato decimal con ajustes locales): aplica la configuración local (separador decimal, separador de miles, mostrar/ocultar ceros a la izquierda) del sistema en el que es visualizado el dato.
* **C** (Formato contable): aplica el formato de moneda (número de decimales, separador de miles y decimal) para el idioma en el que se está ejecutando la instancia.

**precisión**

Número de decimales significativos después de la coma.

#### Ejemplos

`numberToString(0.111111, "f", 2 )` = 0.11

`numberToString(0.111111, "L", 2 )` = 0,11 (ejecutando con el idioma **sistema** e idioma del sistema = Español, España, configuración por defecto).

`numberToString(0.111111, "C", 2 )` = 0,11 (ejecutando con el idioma **sistema** e idioma del sistema = Español, España, configuración por defecto).

### percentage

Devuelve el porcentaje del importe.

#### Sintaxis

percentage(importe, porcentaje)

#### Parámetros

**importe**

Expresión numérica con el importe cuyo porcentaje se desea obtener.

**porcentaje**

Expresión numérica con el porcentaje.

#### Ejemplo

`porcentaje(100, 25 )` = 25

### random

Genera un número entero aleatorio.

#### Sintaxis

random()

#### Parámetros

No tiene.

Genera un número entero aleatorio.

Es una función basada en una función estándar de C++.

El valor que devuelve estará comprendido 0 y RAND\_MAX.

RAND\_MAX es un valor establecido en las librerías de C++ del sistema operativo y no debería ser inferior a 32767.

Por lo tanto, el valor que devolverá esta función estándar estará comprendido entre 0 y 32767

#### Ejemplo

`random()` = 123

### round

Redondea el valor de x.

#### Sintaxis

round(x, decimales)

#### Parámetros

**x**

Expresión numérica a redondear.

**decimales (opcional)**

Expresión numérica con la posición del decimal a redondear. Si no se establece ningún valor, se tomará 0 por defecto.

#### Ejemplos

`round(12.7822, 0 )` = 13\
`round(12.7822, 1 )` = 12.8\
`round”12.7822, 2 )` = 12.78

### stringToNumber

Devuelve el valor numérico de la cadena.

#### Sintaxis

stringToNumber(cadena)

#### Parámetros

**numero**

Cadena que deseamos convertir en un número. Este número puede ser un literal, una variable, un campo, el retorno de una función, etc.

#### Ejemplo

`stringToNumber("0.11")` = 0.11

Debemos tener en cuenta que internamente los datos numéricos son almacenados sin separador de miles y usando el punto (.) como separador decimal, por lo que, en el caso de que las cadenas de origen no vengan en este formato, tendremos que procesarlas y realizar las sustituciones oportunas antes de convertirlas a número.
