Compartir a través de


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

Nota:

Los grupos de interés de la comunidad ahora se han movido de Yammer a Microsoft Viva Engage. Para unirse a una comunidad viva Engage y participar en las últimas discusiones, rellene el formulario Solicitar acceso a Finance and Operations Viva Engage Community y elija la comunidad a la que desea unirse.

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

Estas funciones realizan cálculos matemáticos.

Abs

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

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

Syntax

real abs(real arg)

Parámetros

Parámetro Description
Arg Número del que se va a obtener el valor absoluto.

Valor devuelto

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.

Nota:

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

Syntax

real acos(real arg)

Parámetros

Parámetro Description
Arg Número del que se va a recuperar el coseno de arco.

Valor devuelto

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 seno de arco de un número real.

Nota:

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

Syntax

real asin(real arg)

Parámetros

Parámetro Description
Arg Número para el que se va a calcular el seno de arco.

Valor devuelto

Seno de arco del número especificado.

Observaciones

aSin(0.36) devuelve 0,37.

atan

Recupera la tangente de arco de un número real.

Syntax

real atan(real arg)

Parámetros

Parámetro Description
Arg Número para el que se va a calcular la tangente de arco.

Valor devuelto

Tangente de arco del número especificado.

Observaciones

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)

Parámetros

Parámetro Description
Arg Marca para la que se va a recuperar el estado.

Valor devuelto

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)

Parámetros

Parámetro 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.

Valor devuelto

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)

Parámetros

Parámetro Description
Arg Número para el que se va a buscar el coseno.

Valor devuelto

Coseno del número especificado.

Observaciones

El valor del parámetro arg debe estar 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.

Nota:

Los valores de argumento 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".

Syntax

real cosh(real arg)

Parámetros

Parámetro Description
Arg Número hiperbólico para el que se va a calcular el coseno.

Valor devuelto

Coseno hiperbólico del número especificado.

Observaciones

El valor del parámetro arg debe estar 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)

Parámetros

Parámetro Description
figura Número que se va a redondear.
Decimales Número de posiciones decimales a las que se va a redondear.

Valor devuelto

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

Observaciones

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.

Experiencia

Recupera el antigaritmo natural del número real especificado.

Syntax

real exp(real arg)

Parámetros

Parámetro Description
Arg Número real para el que se va a calcular el antilogaritmo natural.

Valor devuelto

Antigaritmo natural del número real especificado.

Observaciones

El antigaritmo natural calculado es el logaritmo natural e elevado a la potencia indicada por 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)

Parámetros

Parámetro Description
Decimal Número real para el que se va a calcular el antilogaritmo base-10.

Valor devuelto

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)

Parámetros

Parámetro Description
Decimal Número real para el que se va a recuperar la parte decimal.

Valor devuelto

Parte decimal del número especificado.

Observaciones

frac(12.345) devuelve el valor 0,345.

log10

Recupera el logaritmo de 10 dígitos de un número real.

Syntax

real log10(real arg)

Parámetros

Parámetro Description
Arg Número para el que se va a calcular el logaritmo.

Valor devuelto

El logaritmo base 10 del número especificado.

Observaciones

log10(200) devuelve el valor 2.30.

logN

Recupera el logaritmo natural del número real especificado.

Syntax

real logN(real arg)

Parámetros

Parámetro Description
Arg Número para el que se va a calcular el logaritmo natural.

Valor devuelto

Logaritmo natural del número especificado.

Observaciones

logN(45) devuelve el valor 3.81.

max

Recupera el mayor de dos valores especificados.

anytype max(anytype object1, anytype object2)

Parámetros

Parámetro Description
object1 Primer valor.
object2 Segundo valor.

Valor devuelto

Mayor de los dos valores especificados por los parámetros object1 y object2 .

Observaciones

  • 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)

Parámetros

Parámetro Description
object1 Primer valor.
object2 Segundo valor.

Valor devuelto

Menor de los dos valores especificados por los parámetros object1 y object2 .

Observaciones

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.";
}

poder

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

Syntax

real power(real arg, real exponent)

Parámetros

Parámetro Description
Arg Número del que se va a calcular la potencia.
exponente Número al que se va a elevar el número especificado por el parámetro arg .

Valor devuelto

Número real especificado por el parámetro arg para la potencia del número especificado por el parámetro exponente .

Observaciones

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

redondo

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

Syntax

real round(real _arg, real _decimals)

Parámetros

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

Valor devuelto

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 .

Observaciones

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

Observaciones

  • 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)

Parámetros

Parámetro Description
_Arg Número para el que se va a calcular el seno.

Valor devuelto

Seno del número real especificado.

Observaciones

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)

Parámetros

Parámetro Description
_Arg Número para el que se va a calcular el seno hiperbólico.

Valor devuelto

Seno hiperbólico del número real especificado.

Observaciones

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;
}

bronceado

Recupera la tangente de un número real.

Syntax

real tan(real arg)

Parámetros

Parámetro Description
Arg Número real para el que se va a calcular la tangente.

Valor devuelto

Tangente del número real especificado.

Observaciones

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)

Parámetros

Parámetro Description
_Arg Número para el que se va a calcular la tangente hiperbólica.

Valor devuelto

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)

Parámetros

Parámetro Description
_decimal Número que se va a truncar.

Valor devuelto

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

Observaciones

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

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;
}