Funciones matemáticas y de conversión
Redondear decimales, aplicar y deshacer porcentajes, forzar el signo y convertir entre texto, números y fechas en DinaScript.
Funciones del espacio F. para operar con números y cambiar valores de tipo: redondeo, porcentajes, signo y conversiones. Todas ejecutan en cualquier contexto —fórmulas de algoritmo, formularios, campos independientes y API— salvo las excepciones marcadas en la última sección. Las convenciones comunes están en el índice de funciones.
¿Buscas el máximo o el mínimo de varios valores? Esas funciones (Max_*, Min_*) viven en funciones de agregación.
Redondeo
Cuatro criterios distintos para quitar decimales. Elige según hacia dónde quieres que caiga el resultado.
| Función | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
Round | (valor, decimales) | Decimal | Redondea al número de decimales indicado. |
Cast_NumToInt | (valor) | Entero | Redondea al entero más cercano. |
Truncate | (valor) | Entero | Parte entera: descarta los decimales sin redondear. |
Ceiling | (valor) | Entero | Entero igual o superior más cercano. |
Floor | (valor) | Entero | Entero igual o inferior más cercano. |
num redondeado = F.Round(12.68, 1)
@ redondeado vale 12.7
num entero = F.Truncate(12.68)
@ entero vale 12; F.Ceiling(12.68) daría 13Porcentajes
Aplican o deshacen un porcentaje sin escribir la fórmula a mano.
| Función | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
PercentageIncrease | (valor, porcentaje) | Decimal | Incrementa el valor en el porcentaje dado. |
PercentageDecrease | (valor, porcentaje) | Decimal | Reduce el valor en el porcentaje dado. |
PercentageReverse | (valor, porcentaje) | Decimal | Deshace un porcentaje ya aplicado y devuelve la base original. |
CalculatePreDiscountValue | (valorReferencia, porcentaje) | Decimal | Valor previo a un descuento del porcentaje indicado. |
PercentageDifference | (dato, referencia) | Decimal | Diferencia porcentual entre un dato y su referencia. |
PercentageReverse no es lo mismo que PercentageDecrease: uno deshace, el otro resta.
num conIva = F.PercentageIncrease(100, 21)
@ conIva vale 121
num base = F.PercentageReverse(conIva, 21)
@ base vale 100; F.PercentageDecrease(121, 21) daría 95.59Signo
Fuerzan el signo de un número sin condicionales.
| Función | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
EnsurePositive | (valor) | Decimal | Devuelve el valor en positivo, sea cual sea su signo. |
EnsureNegative | (valor) | Decimal | Devuelve el valor en negativo, sea cual sea su signo. |
Convertir entre tipos
Pasan valores de un tipo a otro y comprueban si un texto es convertible.
| Función | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
Cast_TextToNum | (valor) | Decimal | Convierte un texto en número decimal. |
Cast_TextToInt | (valor) | Entero | Convierte un texto en entero. |
Cast_NumToText | (valor) | Texto | Convierte un número en su representación de texto. |
Cast_DateToText | (fecha, formato) | Texto | Convierte una fecha en texto con el formato indicado. |
Cast_DateTimeToText | (fechaHora, formato) | Texto | Convierte una fecha y hora en texto con el formato indicado. |
ExtractFirstNumber | (texto) | Decimal | Extrae el primer número que aparece en un texto. |
IsNumeric | (cadena) | Entero (1/0) | El texto representa un número válido. |
IsInteger | (cadena) | Entero (1/0) | El texto representa un entero válido. |
Cast_TextToNum, Cast_TextToInt y Cast_NumToText solo ejecutan en fórmulas de algoritmo. IsNumeric, IsInteger y ExtractFirstNumber ejecutan en el resto de contextos, pero no en algoritmos: no puedes validar con IsNumeric antes de convertir con Cast_TextToNum.
→ Índice de funciones → Funciones de agregación → Funciones de texto
Funciones de lógica y comparación
Condicionales If y Case, comprobaciones de igualdad, rangos y listas para decidir valores en fórmulas DinaScript sin escribir bloques de código.
Funciones de agregación
Sumar, contar, promediar y extraer valores de grupos de registros: rangos, recuentos de días y el mayor o menor de dos valores.