Compartilhar via


Suporte de ponto flutuante

Muitas funções de biblioteca de tempo de execução da Microsoft requerem suporte de ponto flutuante de um coprocessador matemático ou de bibliotecas de ponto flutuante que acompanham o compilador. As funções de suporte de ponto flutuante só são carregadas se necessário.

Quando você usa um especificador de tipo flutuante na cadeia de caracteres de formato de uma chamada para uma função na família printf ou scanf, especifique um valor de ponto flutuante ou um ponteiro para um valor de ponto flutuante na lista de argumentos para dizer ao compilador que é necessário suporte ao ponto flutuante.

No caso de código de amostra que mostre como tratar exceções de ponto flutuante, consulte _fpieee_flt.

A precisão de ponto flutuante de valores intermediários é controlada pelas funções _control87, _controlfp, __control87_2. Por padrão, o controle de precisão no _controlfp é definido para 53 bits (_PC_53). Vincular usando FP10.OBJ altera o controle de precisão padrão para 64 bits (_PC_64). Na linha de comando do vinculador, FP10.OBJ deve aparecer antes de LIBC.LIB, LIBCMT.LIB ou MSVCRT.LIB.

Funções de ponto flutuante

Rotina

Uso

Equivalente ao .NET Framework

abs

Valor absoluto de retorno de int

System::Math::Abs

acos, acosf

Calcular arco cosseno

System::Math::Acos

asin, asinf

Calcular arco seno

System::Math::Asin

atan, atanf, atan2, atan2f

Calcular arco tangente

System::Math::Atan, System::Math::Atan2

atof, _atof_l, _wtof, _wtof_l

Converter cadeia de caracteres para valor de ponto flutuante de precisão dupla

System::Convert::ToSingle, System::Convert::ToDouble

Funções Bessel

Calcular funções Bessel _j0, _j1, _jn, _y0, _y1, _yn

Não aplicável. Para chamar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

_cabs

Localizar o valor absoluto de um número complexo

Não aplicável.

cbrt

Calcular a raiz do cubo

Não aplicável.

ceil, ceilf

Localizar o teto do inteiro

System::Math::Ceiling

_chgsign, _chgsignf, _chgsignl

Reverter o sinal do ponto flutuante de precisão dupla ou argumento de ponto flutuante de precisão dupla longo

Não aplicável.

_clear87, _clearfp

Obter e limpar a palavra de status do ponto flutuante

Não aplicável.

_control87, _controlfp, __control87_2, _controlfp_s

Obter a palavra de controle de ponto flutuante e definir o novo valor da palavra de controle

Não aplicável.

copysign, copysignf, copysignl, _copysign, _copysignf, _copysignl

Retornar um valor com o sinal de outro

Não aplicável.

cos, cosf, cosh, coshf

Calcular cosseno

System::Math::Cos, System::Math::Cosh

difftime

Calcular diferença entre dois valores de tempo especificados

System::DateTime::Subtract

div

Dividir um inteiro por outro, retornando o cociente e o restante

Não aplicável.

_ecvt, _ecvt_s

Converter double para uma cadeia de caracteres de comprimento especificado

System::Convert::ToString

exp, expf

Calcular função exponencial

System::Math::Exp

fabs, fabsf

Localizar valor absoluto

System::Math::Abs

_fcvt, _fcvt_s

Converter double para cadeia de caracteres que tenha um número especificado de dígitos após o separador decimal

System::Convert::ToString

_finite

Determinar se um determinado valor de ponto flutuante de precisão dupla é finito

System::Double::IsInfinity

floor, floorf

Encontrar o maior inteiro menor ou igual ao argumento

System::Math::Floor

fmod, fmodf

Localizar o restante do ponto flutuante

System::Math::IEEERemainder

_fpclass

Retornar palavra de status contendo informações sobre a classe do ponto flutuante

System::Double::IsInfinity, System::Double::IsNegativeInfinity, System::Double::IsPositiveInfinity, System::Double::IsNan

_fpieee_flt

Chamar identificador de interceptação definido pelo usuário para exceções de ponto flutuante do IEEE

Não aplicável.

_fpreset

Reinicializar o pacote matemático de ponto flutuante

 

frexp

Calcular o valor exponencial

Não aplicável.

_gcvt, _gcvt_s

Converter o valor de ponto flutuante para uma cadeia de caracteres

System::Convert::ToString

hypot, hypotf, hypotl, _hypot, _hypotf, _hypotl

Calcular a hipotenusa do triângulo direito

Não aplicável.

_isnan

Verificar valor de ponto flutuante de precisão dupla indicado para NaN (Não é um número)

System::Double::IsNan

labs

Valor absoluto de retorno de long

System::Math::Abs

ldexp

Calcular o produto do argumento e 2exp (potência especificada)

System::Math::Pow

ldiv

Dividir um inteiro long por outro, retornando o cociente e o restante

Não aplicável.

log, logf, log10, log10f

Calcular o logaritmo natural ou de base 10.

System::Math::Log, System::Math::Log10

_logb

Extrair o valor exponencial do argumento de ponto flutuante de precisão dupla

Não aplicável.

_lrotl, _lrotr

Mudar unsigned long int para a esquerda (_lrotl) ou para a direita (_lrotr)

Não aplicável.

_matherr

Tratar erros matemáticos

Não aplicável.

__max

Retornar maior de dois valores

System::Math::Max

__min

Retornar menor de dois valores

System::Math::Min

modf, modff

Dividir argumento em inteiro e partes fracionais

Não aplicável.

nan, nanf, nanl

Retornar um valor NaN silencioso

System::Double::NaN

_nextafter

Retornar próximo vizinho representável

Não aplicável.

pow, powf

Calcular valor elevado à potência

System::Math::Pow

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

Gravar dados em stdout de acordo com o formato especificado

System::Console::Write, System::Console::WriteLine

rand, rand_s

Obter número pseudoaleatório

System::Random Class

rint, rintf, rintl

Arredondar ao inteiro mais próximo no formato de ponto flutuante

System::Math::Round

_rotl, _rotr

Mudar unsigned int para a esquerda (_rotl) ou para a direita (_rotr)

Não aplicável.

_scalb

Escalar argumento pela potência de 2

Não aplicável.

scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl

Multiplicar por potência integral de FLT_RADIX

Não aplicável.

scanf, wscanf, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

Ler dados de stdin de acordo com o formato especificado e gravar dados no local especificado

System::Console::Read, System::Console::ReadLine

_set_controlfp

Definir novo valor de palavra de controle

Não aplicável.

sin, sinf, sinh, sinhf

Calcular seno ou seno hiperbólico

System::Math::Sin, System::Math::Sinh

sqrt

Encontrar raiz quadrada

System::Math::Sqrt

srand

Inicializar série pseudoaleatória

System::Random Class

_status87, _statusfp, _statusfp2

Obter palavra de status de ponto flutuante

Não aplicável.

strtod, _strtod_l, wcstod, _wcstod_l

Converter cadeia de caracteres em valor de precisão dupla

System::Convert::ToDouble

tan, tanf, tanh, tanhf

Calcular tangente ou tangente hiperbólica

System::Math::Tan, System::Math::Tanh

Consulte também

Referência

Rotinas de tempo de execução por categoria