Compartir a través de


Compatibilidad con el punto flotante

Muchas de las funciones de biblioteca en tiempo de ejecución de Microsoft requieren compatibilidad de punto flotante por parte de un coprocesador matemático o de las bibliotecas de punto flotante que acompañan al compilador. Las funciones de compatibilidad de punto flotante se cargan únicamente si son necesarias.

Cuando se usa un especificador de tipo de punto flotante en la cadena de formato de una llamada a una función de la familia printf o scanf, se debe especificar un valor de punto flotante o un puntero a un valor de punto flotante en la lista de argumentos para indicar al compilador que es necesario admitir puntos flotantes.

Consulte _fpieee_flt para ver código de ejemplo que muestre cómo controlar excepciones de punto flotante.

La precisión del punto flotante en los valores intermedios se controla por medio de las funciones _control87, _controlfp, __control87_2. El control de precisión en _controlfp está establecido de forma predeterminada en 53 bits (_PC_53). Si se vincula mediante FP10.OBJ, el control de precisión predeterminado cambia a 64 bits (_PC_64). En la línea de comandos del vinculador, FP10.OBJ debe aparecer antes de LIBC.LIB, LIBCMT.LIB o MSVCRT.LIB.

Funciones de punto flotante

Rutina

Uso

Equivalente de .NET Framework

abs

Devolver el valor absoluto de int

System::Math::Abs

acos, acosf

Calcular el arco coseno

System::Math::Acos

asin, asinf

Calcular el arcoseno

System::Math::Asin

atan, atanf, atan2, atan2f

Calcular el arcotangente

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

atof, _atof_l, _wtof, _wtof_l

Convertir la cadena de caracteres en un valor de punto flotante de precisión doble

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

Funciones Bessel

Calcular las funciones Bessel _j0, _j1, _jn, _y0, _y1, _yn

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

_cabs

Hallar el valor absoluto de un número complejo

No es aplicable.

cbrt

Calcular la raíz cúbica

No es aplicable.

ceil, ceilf

Hallar el techo de un entero

System::Math::Ceiling

_chgsign, _chgsignf, _chgsignl

Invertir el signo de punto flotante de precisión doble o el argumento de punto flotante de precisión doble larga

No es aplicable.

_clear87, _clearfp

Obtener y borrar la palabra de estado de punto flotante

No es aplicable.

_control87, _controlfp, __control87_2, _controlfp_s

Obtener la palabra de control de punto flotante anterior y definir el nuevo valor de palabra de control

No es aplicable.

copysign, copysignf, copysignl, _copysign, _copysignf, _copysignl

Devolver un valor con el signo de otro

No es aplicable.

cos, cosf, cosh, coshf

Calcular el coseno

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

difftime

Calcular la diferencia entre dos valores de hora especificados

System::DateTime::Subtract

div

Dividir un entero entre otro, de lo cual se obtiene un cociente y un resto

No es aplicable.

_ecvt, _ecvt_s

Convertir double en una cadena de caracteres de la longitud especificada

System::Convert::ToString

exp, expf

Calcular la función exponencial

System::Math::Exp

fabs, fabsf

Hallar el valor absoluto

System::Math::Abs

_fcvt, _fcvt_s

Convertir double en una cadena que tenga el número especificado de dígitos después del separador decimal

System::Convert::ToString

_finite

Averiguar si el valor de punto flotante de precisión doble dado es finito

System::Double::IsInfinity

floor, floorf

Hallar el entero más grande igual o menor que el argumento

System::Math::Floor

fmod, fmodf

Hallar el resto del punto flotante

System::Math::IEEERemainder

_fpclass

Devolver la palabra de estado que contiene información sobre la clase de punto flotante

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

_fpieee_flt

Invocar un controlador de interceptaciones definido por el usuario para las excepciones de punto flotante del IEEE

No es aplicable.

_fpreset

Reinicializar el paquete matemático de punto flotante

 

frexp

Calcular el valor exponencial

No es aplicable.

_gcvt, _gcvt_s

Convertir el valor de punto flotante en una cadena de caracteres

System::Convert::ToString

hypot, hypotf, hypotl, _hypot, _hypotf, _hypotl

Calcular la hipotenusa de un triángulo rectángulo

No es aplicable.

_isnan

Buscar elementos NaN (que no son números) en el valor de punto flotante de precisión doble dado

System::Double::IsNan

labs

Devolver el valor absoluto de long

System::Math::Abs

ldexp

Calcular el producto del argumento y 2exp (potencia especificada)

System::Math::Pow

ldiv

Dividir un entero long entre otro, de lo cual se obtiene un cociente y un resto

No es aplicable.

log, logf, log10, log10f

Calcular el logaritmo natural o de base 10.

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

_logb

Extraer el valor exponencial del argumento de punto flotante de precisión doble

No es aplicable.

_lrotl, _lrotr

Desplazar unsigned long int a la izquierda (_lrotl) o a la derecha (_lrotr)

No es aplicable.

_matherr

Tratar errores matemáticos

No es aplicable.

__max

Devolver el valor más alto de dos valores

System::Math::Max

__min

Devolver el valor más bajo de dos valores

System::Math::Min

modf, modff

Dividir el argumento en entero y fracción

No es aplicable.

nan, nanf, nanl

Devolver un valor NaN reservado

System::Double::NaN

_nextafter

Devolver el siguiente elemento cercano representable

No es aplicable.

pow, powf

Calcular el valor elevado a una potencia

System::Math::Pow

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

Escribir datos en stdout según el formato especificado

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

rand, rand_s

Obtener el número seudoaleatorio

System::Random Class

rint, rintf, rintl

Redondear al entero más cercano en el formato de punto flotante

System::Math::Round

_rotl, _rotr

Desplazar unsigned int a la izquierda (_rotl) o a la derecha (_rotr)

No es aplicable.

_scalb

Escalar el argumento por una potencia de 2

No es aplicable.

scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl

Multiplicar por la potencia integral de FLT_RADIX

No es aplicable.

scanf, wscanf, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

Leer datos de stdin según el formato especificado y escribir datos en la ubicación especificada

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

_set_controlfp

Establecer un nuevo valor de palabra de control

No es aplicable.

sin, sinf, sinh, sinhf

Calcular el seno y seno hiperbólico

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

sqrt

Hallar la raíz cuadrada

System::Math::Sqrt

srand

Inicializar series seudoaleatorias

System::Random Class

_status87, _statusfp, _statusfp2

Obtener la palabra de estado de punto flotante

No es aplicable.

strtod, _strtod_l, wcstod, _wcstod_l

Convertir la cadena de caracteres en un valor de precisión doble

System::Convert::ToDouble

tan, tanf, tanh, tanhf

Calcular la tangente y la tangente hiperbólica

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

Vea también

Referencia

Rutinas de tiempo de ejecución por categoría