Compartilhar via


Funções matemáticas em tempo de execução da X++

Observação

Grupos de interesse da comunidade mudaram do Yammer para o Microsoft Viva Engage. Para ingressar em uma comunidade do Viva Engage e participar das discussões mais recentes, preencha o formulário Solicitar acesso às Finanças e Operações viva engage community e escolha a comunidade que você deseja ingressar.

Este artigo descreve as funções de tempo de execução matemática.

Essas funções executam cálculos matemáticos.

Abs

Recupera o valor absoluto de um número real. Exemplos:

  • abs(-100.0) retorna o valor 100.0.
  • abs(30,56) retorna o valor 30,56.

Sintaxe

real abs(real arg)

Parâmetros

Parâmetro Description
argumento O número do qual obter o valor absoluto.

Valor de retorno

O 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 o cosseno de arco de um número real.

Observação

Os valores de argumento que estão fora do intervalo de -1 a 1 causam o seguinte erro em tempo de execução: "Argumento para função trigonométrica fora do intervalo".

Sintaxe

real acos(real arg)

Parâmetros

Parâmetro Description
argumento O número do qual recuperar o cosseno do arco.

Valor de retorno

O arco cosseno 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 o seno do arco de um número real.

Observação

Os valores de argumento que estão fora do intervalo de -1 a 1 causam o seguinte erro em tempo de execução: "Argumento para função trigonométrica fora do intervalo".

Sintaxe

real asin(real arg)

Parâmetros

Parâmetro Description
argumento O número para o qual calcular o seno do arco.

Valor de retorno

O seno do arco do número especificado.

Observações

aSin(0.36) retorna 0,37.

atan

Recupera a tangente do arco de um número real.

Sintaxe

real atan(real arg)

Parâmetros

Parâmetro Description
argumento O número para o qual calcular a tangente do arco.

Valor de retorno

A tangente do arco do número especificado.

Observações

aTan(0.36) retorna 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 o estado do sinalizador de correção para um número real.

Sintaxe

int corrFlagGet(real arg)

Parâmetros

Parâmetro Description
argumento O sinalizador para o qual recuperar o estado.

Valor de retorno

Um valor diferente de zero se o sinalizador estiver definido; 0 (zero) se o sinalizador estiver limpo.

Example

O exemplo a seguir exibe 1.

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

corrFlagSet

Controla o sinalizador de correção para um número real.

Sintaxe

real corrFlagSet(real real, int arg)

Parâmetros

Parâmetro Description
real O número no qual ativar ou desativar o sinalizador de correção.
argumento 0 para desativar o sinalizador; um valor diferente de zero para ativar o sinalizador.

Valor de retorno

0 se o sinalizador estiver desativado; um valor diferente de zero se o sinalizador estiver ativado.

Porque

Recupera o cosseno de um número real.

Sintaxe

real cos(real arg)

Parâmetros

Parâmetro Description
argumento O número para o qual localizar o cosseno.

Valor de retorno

O cosseno do número especificado.

Observações

O valor do parâmetro arg deve estar em radianos.

Example

O exemplo de código a seguir exibe 0,76.

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

Cosh

Recupera o cosseno hiperbólico de um número real.

Observação

Os valores de argumento que estão fora do intervalo de -250 a 250 causam o seguinte erro em tempo de execução: "Argumento para função trigonométrica fora do intervalo".

Sintaxe

real cosh(real arg)

Parâmetros

Parâmetro Description
argumento O número hiperbólico para o qual calcular o cosseno.

Valor de retorno

O cosseno hiperbólico do número especificado.

Observações

O valor do parâmetro arg deve estar em radianos.

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

Arredonda um número para o número especificado de casas decimais.

Sintaxe

real decRound(real figure, int decimals)

Parâmetros

Parâmetro Description
figura Número a ser arredondado.
Decimais O número de casas decimais para a qual arredondar.

Valor de retorno

O valor do número especificado, arredondado para o número especificado de casas decimais.

Observações

O valor do parâmetro decimals pode ser positivo, 0 (zero) ou negativo.

  • decRound(1234.6574,2) retorna o valor 1234,66.
  • decRound(1234.6574,0) retorna o valor 1235.
  • decRound(1234.6574,-2) retorna o valor 1200.
  • decRound(12345.6789,1) retorna o valor 12345,70.
  • decRound(12345.6789,-1) retorna o valor 12350,00.

Exp.

Recupera o antilogarithm natural do número real especificado.

Sintaxe

real exp(real arg)

Parâmetros

Parâmetro Description
argumento O número real para o qual calcular o antilogarithm natural.

Valor de retorno

O antilogarithm natural do número real especificado.

Observações

O antilogarithm natural calculado é o logaritmo natural e elevado à potência indicada pelo 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 o antilogarithm base-10 do número real especificado.

Sintaxe

real exp10(real decimal)

Parâmetros

Parâmetro Description
decimal O número real para o qual calcular o antilogálogo base 10.

Valor de retorno

O antilogarithm baseado em 10 do valor do 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 a parte decimal de um número real.

Sintaxe

real frac(real decimal)

Parâmetros

Parâmetro Description
decimal O número real para o qual recuperar a parte decimal.

Valor de retorno

A parte decimal do número especificado.

Observações

frac(12.345) retorna o valor 0,345.

log10

Recupera o logaritmo de 10 dígitos de um número real.

Sintaxe

real log10(real arg)

Parâmetros

Parâmetro Description
argumento O número para o qual calcular o logaritmo.

Valor de retorno

O logaritmo de base 10 do número especificado.

Observações

log10(200) retorna o valor 2.30.

logN

Recupera o logaritmo natural do número real especificado.

Sintaxe

real logN(real arg)

Parâmetros

Parâmetro Description
argumento O número para o qual calcular o logaritmo natural.

Valor de retorno

O logaritmo natural do número especificado.

Observações

logN(45) retorna o valor 3.81.

max

Recupera o maior de dois valores especificados.

anytype max(anytype object1, anytype object2)

Parâmetros

Parâmetro Description
object1 O primeiro valor.
object2 O segundo valor.

Valor de retorno

O maior dos dois valores especificados pelos parâmetros object1 e object2 .

Observações

  • max(12.0,12.1) retorna o valor 12.1.
  • max(2,33) retorna o valor 33.

min

Recupera o menor de dois valores especificados.

anytype min(anytype object1, anytype object2)

Parâmetros

Parâmetro Description
object1 O primeiro valor.
object2 O segundo valor.

Valor de retorno

O menor dos dois valores especificados pelos parâmetros object1 e object2 .

Observações

min(2,33) retorna o 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.";
}

energia

Eleva um número real ao poder de outro número real.

Sintaxe

real power(real arg, real exponent)

Parâmetros

Parâmetro Description
argumento O número do qual calcular a potência.
expoente O número para o qual aumentar o número especificado pelo parâmetro arg .

Valor de retorno

O número real que é o número especificado pelo parâmetro arg para a potência do número especificado pelo parâmetro expoente .

Observações

  • power(5.0,2.0) retorna o valor 25.0.
  • power(4.0,0.5) retorna o valor 2.0.

arredondar

Arredonda um número real para o múltiplo mais próximo de outro número real.

Sintaxe

real round(real _arg, real _decimals)

Parâmetros

Parâmetro Description
_Arg O número original.
_Decimais O número do qual o valor do parâmetro _arg deve ser arredondado para um múltiplo.

Valor de retorno

O número que é um múltiplo do valor especificado pelo parâmetro _decimals e está mais próximo do valor especificado pelo parâmetro _arg .

Observações

Para arredondar um número real para um número especificado de casas decimais, use a função de desordamento.

Observações

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

sin

Recupera o seno de um número real.

Sintaxe

real sin(real _arg)

Parâmetros

Parâmetro Description
_Arg O número para o qual calcular o seno.

Valor de retorno

O seno do número real especificado.

Observações

O valor do parâmetro _arg deve estar em radianos.

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 o seno hiperbólico de um número real.

Sintaxe

real sinh(real _arg)

Parâmetros

Parâmetro Description
_Arg O número para o qual calcular o seno hiperbólico.

Valor de retorno

O seno hiperbólico do número real especificado.

Observações

Os valores do parâmetro _arg que estão fora do intervalo de -250 a 250 causam o seguinte erro em tempo de execução: "Argumento para função trigonométrica fora do intervalo".

Example

O exemplo a seguir ilustra a função 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;
}

bronzear

Recupera a tangente de um número real.

Sintaxe

real tan(real arg)

Parâmetros

Parâmetro Description
argumento O número real para o qual calcular a tangente.

Valor de retorno

A tangente do número real especificado.

Observações

Os valores do parâmetro arg que estão fora do intervalo de -250 a 250 causam o seguinte erro em tempo de execução: "Argumento para função trigonométrica fora do intervalo".

Example

O exemplo a seguir ilustra a função tan .

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

Tanh

Recupera a tangente hiperbólica de um número real.

Sintaxe

real tanh(real _arg)

Parâmetros

Parâmetro Description
_Arg O número para o qual calcular a tangente hiperbólica.

Valor de retorno

A tangente hiperbólica do número real especificado.

Example

O exemplo a seguir ilustra a função 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 um número real removendo casas decimais.

Sintaxe

real trunc(real _decimal)

Parâmetros

Parâmetro Description
_decimal O número a ser truncado.

Valor de retorno

Um número equivalente ao valor do parâmetro _decimal após a remoção das casas decimais.

Observações

Essa função sempre arredonda números para baixo para um inteiro completo.

Example

O exemplo a seguir trunca 2.7147 a 2.00.

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