Esta documentación está en fase de desarrollo y puede contener errores.

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ónParámetrosDevuelveQué hace
Round(valor, decimales)DecimalRedondea al número de decimales indicado.
Cast_NumToInt(valor)EnteroRedondea al entero más cercano.
Truncate(valor)EnteroParte entera: descarta los decimales sin redondear.
Ceiling(valor)EnteroEntero igual o superior más cercano.
Floor(valor)EnteroEntero 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 13

Porcentajes

Aplican o deshacen un porcentaje sin escribir la fórmula a mano.

FunciónParámetrosDevuelveQué hace
PercentageIncrease(valor, porcentaje)DecimalIncrementa el valor en el porcentaje dado.
PercentageDecrease(valor, porcentaje)DecimalReduce el valor en el porcentaje dado.
PercentageReverse(valor, porcentaje)DecimalDeshace un porcentaje ya aplicado y devuelve la base original.
CalculatePreDiscountValue(valorReferencia, porcentaje)DecimalValor previo a un descuento del porcentaje indicado.
PercentageDifference(dato, referencia)DecimalDiferencia 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.59

Signo

Fuerzan el signo de un número sin condicionales.

FunciónParámetrosDevuelveQué hace
EnsurePositive(valor)DecimalDevuelve el valor en positivo, sea cual sea su signo.
EnsureNegative(valor)DecimalDevuelve 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ónParámetrosDevuelveQué hace
Cast_TextToNum(valor)DecimalConvierte un texto en número decimal.
Cast_TextToInt(valor)EnteroConvierte un texto en entero.
Cast_NumToText(valor)TextoConvierte un número en su representación de texto.
Cast_DateToText(fecha, formato)TextoConvierte una fecha en texto con el formato indicado.
Cast_DateTimeToText(fechaHora, formato)TextoConvierte una fecha y hora en texto con el formato indicado.
ExtractFirstNumber(texto)DecimalExtrae 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 funcionesFunciones de agregaciónFunciones de texto

On this page