Funciones en tiempo de ejecución de X++ para cálculo

En este artículo se describen las funciones matemáticas en tiempo de ejecución.

Estas funciones realizan cálculos matemáticos.

abs

Recupera el valor absoluto de un número real. Examples:

  • abs(-100.0) devuelve el valor 100.0.
  • abs(30.56) devuelve el valor 30.56.

Syntax

real abs(real arg)

Parameters

Parameter Description
arg Número del que se va a obtener el valor absoluto.

Return value

Valor absoluto de arg.

Example

static void absExample(Args _args)
{
    real r1;
    real r2;
    ;
    r1 = abs(-3.14);
    r2 = abs(3.14);
    if (r1 == r2)
    {
        print "abs of values are the same";
        pause;
    }
}

acos

Recupera el coseno de arco de un número real.

Note

Si proporciona valores de argumento que están fuera del intervalo de -1 a 1, la función devuelve el siguiente error en tiempo de ejecución: "Argumento para la función trigonométrica fuera del intervalo".

Syntax

real acos(real arg)

Parameters

Parameter Description
arg Número del que se va a recuperar el coseno de arco.

Return value

Coseno de arco de arg.

Example

static void acosExample(Args _args)
{
    real r;
    str  s;
    ;
    r = acos(0.0);
    s = strFmt("The arc cosine of 0.0 is %1 ", r);
    print s;
    pause;
}

asin

Recupera el arcoseno de un número real.

Note

Si proporciona valores de argumento que están fuera del intervalo de -1 a 1, la función devuelve el siguiente error en tiempo de ejecución: "Argumento para la función trigonométrica fuera del intervalo".

Syntax

real asin(real arg)

Parameters

Parameter Description
arg Número para el que se va a calcular el arcoseno.

Return value

Arcoseno del número especificado.

Remarks

aSin(0.36) devuelve 0,37.

atan

Recupera la arcotangente de un número real.

Syntax

real atan(real arg)

Parameters

Parameter Description
arg Número para el que se va a calcular la tangente de arco.

Return value

Tangente de arco del número especificado.

Remarks

aTan(0.36) devuelve 0,35.

Example

static void atanExample(Args _args)
{
    real r;
    ;
    r = atan(1.0);
    print strFmt("The Arc Tangent of 1.0 is %1", r);
    pause;
}

corrFlagGet

Recupera el estado de la marca de corrección de un número real.

Syntax

int corrFlagGet(real arg)

Parameters

Parameter Description
arg Marca para la que se va a recuperar el estado.

Return value

Valor distinto de cero si se establece la marca; 0 (cero) si se borra la marca.

Example

En el ejemplo siguiente se muestra 1.

static void corrFlagGetExample(Args _args)
{
    real rr;
    rr = corrFlagSet(0.36,2);
    print(corrFlagGet(rr));
}

corrFlagSet

Controla la marca de corrección de un número real.

Syntax

real corrFlagSet(real real, int arg)

Parameters

Parameter Description
real Número en el que se va a activar o desactivar la marca de corrección.
arg 0 para desactivar la marca; un valor distinto de cero para activar la marca.

Return value

0 si la marca está desactivada; un valor distinto de cero si la marca está activada.

cos

Recupera el coseno de un número real.

Syntax

real cos(real arg)

Parameters

Parameter Description
arg Número para el que se va a buscar el coseno.

Return value

Coseno del número especificado.

Remarks

Escriba el valor del parámetro arg en radianes.

Example

En el ejemplo de código siguiente se muestra 0.76.

static void cosExample(Args _arg)
{
    real r;
    ;
    r = cos(15);
    print strFmt("Cos of 15 is %1", r);
    pause;
}

cosh

Recupera el coseno hiperbólico de un número real.

Note

Si especifica valores de argumento que están fuera del intervalo de -250 a 250, obtendrá el siguiente error en tiempo de ejecución: "Argumento para la función trigonométrica fuera del intervalo".

Syntax

real cosh(real arg)

Parameters

Parameter Description
arg Número hiperbólico para el que se va a calcular el coseno.

Return value

Coseno hiperbólico del número especificado.

Remarks

Escriba el valor del parámetro arg en radianes.

Example

static void coshExample(Args _arg)
{
    real r;
    ;
    r = cosh(0.1);
    print "The hyperbolic cosine of 0.1 is " + num2Str(r, 2, 2, 1, 1);
    pause;
}

decRound

Redondea un número al número especificado de posiciones decimales.

Syntax

real decRound(real figure, int decimals)

Parameters

Parameter Description
figure Número que se va a redondear.
decimals Número de posiciones decimales a las que se va a redondear.

Return value

Valor del número especificado, redondeado al número especificado de posiciones decimales.

Remarks

El valor del parámetro decimals puede ser positivo, 0 (cero) o negativo.

  • decRound(1234.6574,2) devuelve el valor 1234.66.
  • decRound(1234.6574,0) devuelve el valor 1235.
  • decRound(1234.6574,-2) devuelve el valor 1200.
  • decRound(12345.6789,1) devuelve el valor 12345.70.
  • decRound(12345.6789,-1) devuelve el valor 12350.00.

exp

Recupera el antigaritmo natural del número real especificado.

Syntax

real exp(real arg)

Parameters

Parameter Description
arg Número real para el que se va a calcular el antilogaritmo natural.

Return value

Antigaritmo natural del número real especificado.

Remarks

El antigaritmo natural calculado es el logaritmo natural e elevado a la potencia que indica el parámetro arg .

Example

static void expExample(Args _arg)
{
    real r1;
    real r2;
    ;
    r1 = exp(2.302585093);
    r2 = exp10(2.302585093);
    print strFmt("exp of 2.302585093 is %1", r1);
    print strFmt("exp10 of 230258 is %1", r2);
    pause;
}

exp10

Recupera el antilogaritmo base-10 del número real especificado.

Syntax

real exp10(real decimal)

Parameters

Parameter Description
decimal Número real para el que se va a calcular el antilogaritmo base-10.

Return value

Antilogaritmo basado en 10 del valor del parámetro decimal .

Example

static void exp10Example(Args _arg)
{
    real r1;
    real r2;
    ;
    r1 = exp(2.302585093);
    r2 = exp10(2.302585093);
    print strFmt("exp of 2.302585093 is %1", r1);
    print strFmt("exp10 of 230258 is %1", r2);
    pause;
}

frac

Recupera la parte decimal de un número real.

Syntax

real frac(real decimal)

Parameters

Parameter Description
decimal Número real para el que se va a recuperar la parte decimal.

Return value

Parte decimal del número especificado.

Remarks

frac(12.345) devuelve el valor 0,345.

log10

Recupera el logaritmo base-10 de un número real.

Syntax

real log10(real arg)

Parameters

Parameter Description
arg Número para el que se va a calcular el logaritmo.

Return value

El logaritmo base 10 del número especificado.

Remarks

log10(200) devuelve el valor 2.30.

logN

Recupera el logaritmo natural del número real especificado.

Syntax

real logN(real arg)

Parameters

Parameter Description
arg Número para el que se va a calcular el logaritmo natural.

Return value

Logaritmo natural del número especificado.

Remarks

logN(45) devuelve el valor 3.81.

max

Recupera el mayor de dos valores especificados.

anytype max(anytype object1, anytype object2)

Parameters

Parameter Description
object1 Primer valor.
object2 Segundo valor.

Return value

Cuanto mayor sea el tamaño de los dos valores que especifique mediante los parámetros object1 y object2 .

Remarks

  • max(12.0,12.1) devuelve el valor 12.1.
  • max(2,33) devuelve el valor 33.

min

Recupera el menor de dos valores especificados.

anytype min(anytype object1, anytype object2)

Parameters

Parameter Description
object1 Primer valor.
object2 Segundo valor.

Return value

Menor de los dos valores que se especifican mediante los parámetros object1 y object2 .

Remarks

min(2,33) devuelve el valor 2.

Example

static void minExample(Args _arg)
{
    anytype a;
    real r = 3.0;
    real s = 2.0;

    a = min(r, s);
    print num2Str(a, 1, 2, 1, 1) + " is less than the other number.";
}

power

Eleva un número real a la potencia de otro número real.

Syntax

real power(real arg, real exponent)

Parameters

Parameter Description
arg Número del que se va a calcular la potencia.
exponent Número al que se va a elevar el número que se especifica mediante el parámetro arg .

Return value

Número real que es el número especificado mediante el parámetro arg para la potencia del número que especifique mediante el parámetro exponente .

Remarks

  • power(5.0,2.0) devuelve el valor 25.0.
  • power(4.0,0.5) devuelve el valor 2.0.

round

Redondea un número real al múltiplo más cercano de otro número real.

Syntax

real round(real _arg, real _decimals)

Parameters

Parameter Description
_arg Número original.
_decimals Número del que el valor del parámetro _arg debe redondearse a un múltiplo.

Return value

Número que es un múltiplo del valor especificado por el parámetro _decimals y está más cercano al valor especificado por el parámetro _arg .

Remarks

Para redondear un número real a un número especificado de posiciones decimales, use la función de descround.

Remarks

  • round(123.45,5.00) devuelve el valor 125.00.
  • round(7.45,1.05) devuelve el valor 7.35.
  • round(23.9,5.0) devuelve el valor 25.00.
  • round(26.1,5.0) devuelve el valor 25.00.

sin

Recupera el seno de un número real.

Syntax

real sin(real _arg)

Parameters

Parameter Description
_arg Número para el que se va a calcular el seno.

Return value

Seno del número real especificado.

Remarks

El valor del parámetro _arg debe estar en radianes.

Example

static void sinExample(Args _arg)
{
    real angleDegrees = 15.0;
    real angleRadians;
    real pi = 3.14;
    real r;
    ;
    angleRadians = pi * angleDegrees / 180;
    r = sin(angleRadians);
    print "sin of a "
        + num2Str(angleDegrees, 2, 2, 1, 1)
        + " degree angle is "
        + num2Str(r, 2, 10, 1, 1);
    pause;
}

sinh

Recupera el seno hiperbólico de un número real.

Syntax

real sinh(real _arg)

Parameters

Parameter Description
_arg Número para el que se va a calcular el seno hiperbólico.

Return value

Seno hiperbólico del número real especificado.

Remarks

Los valores del parámetro _arg que están fuera del intervalo de -250 a 250 provocan el siguiente error en tiempo de ejecución: "Argumento para la función trigonométrica fuera del intervalo".

Example

En el ejemplo siguiente se muestra la función sinh .

static void sinhExample(Args _arg)
{
    real angleDegrees = 45.0;
    real angleRadians;
    real pi = 3.14;
    real r;
    ;
    angleRadians = pi * angleDegrees / 180;
    r = sinh(angleRadians);
    print "sinh of a "
    + num2Str(angleDegrees, 2, 2, 1, 1)
    + " degree angle is "
    + num2Str(r, 2, 15, 1, 1);
    pause;
}

tan

Recupera la tangente de un número real.

Syntax

real tan(real arg)

Parameters

Parameter Description
arg Número real para el que se va a calcular la tangente.

Return value

Tangente del número real especificado.

Remarks

Los valores del parámetro arg que están fuera del intervalo de -250 a 250 provocan el siguiente error en tiempo de ejecución: "Argumento para la función trigonométrica fuera del intervalo".

Example

En el ejemplo siguiente se muestra la función tanada .

static void tanExample(Args _arg)
{
    real r;
    ;
    r = tan(250);
    print strFmt("Tan of 250 is %1", r);
    pause;
}

tanh

Recupera la tangente hiperbólica de un número real.

Syntax

real tanh(real _arg)

Parameters

Parameter Description
_arg Número para el que se va a calcular la tangente hiperbólica.

Return value

Tangente hiperbólica del número real especificado.

Example

En el ejemplo siguiente se muestra la función tanh .

static void tanhExample(Args _arg)
{
    real r;
    ;
    r = tanh(0.1);
    print "The hyperbolic tangent of angle 0.1 is "
    + num2Str(r, 2, 10, 1, 1);
    pause;
}

trunc

Trunca un número real quitando las posiciones decimales.

Syntax

real trunc(real _decimal)

Parameters

Parameter Description
_decimal Número que se va a truncar.

Return value

Número equivalente al valor del parámetro _decimal después de quitar los posiciones decimales.

Remarks

Esta función siempre redondea los números hasta un entero entero.

Example

En el ejemplo siguiente se trunca 2.7147 a 2.00.

static void truncExample(Args _arg)
{
    real r;
    ;
    r = trunc(2.7147);
    print strFmt("r = %1",  r);
    pause;
}