Herramientas personales
 

Usando Funciones Matematicas en Reglas

De


Usando Funciones Matemáticas en Reglas

Un proyecto Bizagi puede requerir operaciones especiales sobre números, como encontrar su valor absoluto o raíz cuadrada o redondeando un número. Esto puede ser logrado usando los métodos de la clase Math del Framework .NET. En una regla el método es usado como:

System.Math.[nombre_método].

Para métodos de las clases sobrecargadas, una declaración explícita de los parámetros debe ser hecha dependiendo en qué sobrecarga va a ser usada.

Debe ser tomarse cuidado para seleccionar el tipo correcto con operaciones usando datos del negocio. Por ejemplo, es incorrecto crear un atributo para un tipo Integer si un número como 170.62 necesita ser guardado en este.


  • En este ejemplo, la tercera potencia de un valor de negocio es obtenida y luego guardado y luego guardado en otro valor de negocio.


Si <VacationRequest.BaseNumber> = 2 luego <VacationRequest.ResultNumber> es asignado con 8.


  • En este otro ejemplo, un valor de negocio con fracción decimal es redondeado a un entero.



Si <VacationRequest.BaseNumber> = 14.667 luego <VacationRequest.ResultNumber> es asignado con 15.

Algunos Métodos Matemáticos Útiles

(Tomado de la documentación de .NET)
NaN: No es un Número (Not a number)


Método Descripción Uso en Bizagi (Usando únicamente dos métodos sobrecargados) Valor de Retorno Ejemplo
Abs Devuelve el valor absoluto de un número especificado. System.Math.Abs((decimal)(value));
System.Math.Abs((int)(value));
Un número de punto flotante de precisión doble, x, tal que 0 ≤ x ≤ ValorMax. System.Math.Abs(-4.79) = 4.79
System.Math.Abs(32) = 32
Ceiling Retorna el numero entero más pequeño mayor o igual al número especificado. System.Math.Ceiling(num); El número entero más pequeño mayor o igual a num. System.Math.Ceiling(0.00) = 0
System.Math.Ceiling(0.90) = 1
System.Math.Ceiling(1.00) = 1
System.Math.Ceiling(1.10) = 2
Floor Retorna el número entero más grande menor o igual al número especificado. System.Math.Floor(num); El número entero más grande menor o igual a  num. System.Math.Floor(2.10) = 2
System.Math.Floor(2.00) = 2
System.Math.Floor(1.90) = 1
Max Retorna el más grande de dos números especificados. System.Math.Max((decimal)(val1), (decimal)(val2));
System.Math.Max((double)(val1), (double)(val2));
Parámetro val1 o val2, que sea el mayor. Sí val1, val2, o ambosval1 y val2 son iguales a NaN, NaN es retornado. System.Math.Max(6, 56) = 56
Min Retorna el menor de dos números. System.Math.Min((int)(val1), (int)(val2));
System.Math.Min((long)(val1), (long)(val2));
Parámetroval1 o val2, que sea menor. Si val1, val2, o ambosval1 y val2 son iguales a NaN, NaN es retornado. System.Math.Min(-4, 54) = -4
Pow Retorna un número especificado elevado al a potencia especificada. System.Math.Pow(x, y); El número x elevado a la potencia y. System.Math.Pow(100, 2) = 10000
Round Retorna el número más cercano al valor especificado. System.Math.Round((decimal)(value));
System.Math.Round((double)(value), (int)(digits));
El número más cercano  value con precisión igual a digits. Si value esta a la mitad de dos números, siendo uno par y el otro impar, luego el número par es retornado. Si la precisión de value es menor que digits, luego value es retornado sin cambios System.Math.Round(3.48) = 3
System.Math.Round(3.44, 1) = 3.4
System.Math.Round(3.45, 1) = 3.4
System.Math.Round(3.46, 1) = 3.5
Sqrt Retorna la raíz cuadrada de un número especificado. System.Math.Sqrt(num); Si num es cero o positivo, la raíz es positiva. Si este es negativo, NaN. System.Math.Sqrt(144) = 12