Many Microsoft run-time library functions require floating-point support from a math coprocessor or from the floating-point libraries that accompany the compiler. Floating-point support functions are loaded only if required.
When you use a floating-point type specifier in the format string of a call to a function in the printf or scanf family, you must specify a floating-point value or a pointer to a floating-point value in the argument list to tell the compiler that floating-point support is required.
To handle floating-point exceptions, refer to the sample code in the _fpieee_flt topic.
Floating-point precision of intermediate values are controlled by the functions _control87, _controlfp, __control87_2. By default, _controlfp's precision control is set to 53 bits (_PC_53). Linking with FP10.OBJ changes the default precision control to 64 bits (_PC_64). On the linker command line, FP10.OBJ must appear before LIBC.LIB, LIBCMT.LIB, or MSVCRT.LIB.
Routine |
Use |
.NET Framework equivalent |
---|---|---|
abs |
Return absolute value of int |
System::Math::Abs |
acos, acosf |
Calculate arccosine |
System::Math::Acos |
asin, asinf |
Calculate arcsine |
System::Math::Asin |
atan, atanf, atan2, atan2f |
Calculate arctangent |
System::Math::Atan, System::Math::Atan2 |
atof, _atof_l, _wtof, _wtof_l |
Convert character string to double-precision floating-point value |
System::Convert::ToSingle, System::Convert::ToDouble |
Bessel functions |
Calculate Bessel functions _j0, _j1, _jn, _y0, _y1, _yn |
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples. |
_cabs |
Find absolute value of complex number |
Not applicable. |
ceil, ceilf |
Find integer ceiling |
System::Math::Ceiling |
_chgsign, _chgsignl |
Reverse sign of double-precision floating-point or long double-precision floating-point argument |
Not applicable. |
_clear87, _clearfp |
Get and clear floating-point status word |
Not applicable. |
_control87, _controlfp, __control87_2, _controlfp_s |
Get old floating-point control word and set new control-word value |
Not applicable. |
_copysign, _copysignl |
Return one value with sign of another |
Not applicable. |
cos, cosf, cosh, coshf |
Calculate cosine |
System::Math::Cos, System::Math::Cosh |
difftime |
Compute difference between two specified time values |
System::DateTime::Subtract |
div |
Divide one integer by another, returning quotient and remainder |
Not applicable. |
_ecvt, _ecvt_s |
Convert double to character string of specified length |
System::Convert::ToString |
exp, expf |
Calculate exponential function |
System::Math::Exp |
fabs, fabsf |
Find absolute value |
System::Math::Abs |
_fcvt, _fcvt_s |
Convert double to string with specified number of digits following decimal point |
System::Convert::ToString |
_finite |
Determine whether given double-precision floating-point value is finite |
System::Double::IsInfinity |
floor, floorf |
Find largest integer less than or equal to argument |
System::Math::Floor |
fmod, fmodf |
Find floating-point remainder |
System::Math::IEEERemainder |
_fpclass |
Return status word containing information on floating-point class |
System::Double::IsInfinity, System::Double::IsNegativeInfinity, System::Double::IsPositiveInfinity, System::Double::IsNan |
_fpieee_flt |
Invoke user-defined trap handler for IEEE floating-point exceptions |
Not applicable. |
_fpreset |
Reinitialize floating-point math package |
|
frexp |
Calculate exponential value |
Not applicable. |
_gcvt, _gcvt_s |
Convert floating-point value to character string |
System::Convert::ToString |
_hypot, hypotf |
Calculate hypotenuse of right triangle |
Not applicable. |
_isnan |
Check given double-precision floating-point value for not a number (NaN) |
System::Double::IsNan |
labs |
Return absolute value of long |
System::Math::Abs |
ldexp |
Calculate product of argument and 2 to specified power |
System::Math::Pow |
ldiv |
Divide one long integer by another, returning quotient and remainder |
Not applicable. |
log, logf, log10, log10f |
Calculate natural or base-10 logarithm. |
System::Math::Log, System::Math::Log10 |
_logb |
Extract exponential value of double-precision floating-point argument |
Not applicable. |
_lrotl, _lrotr |
Shift unsigned long int left (_lrotl) or right (_lrotr) |
Not applicable. |
_matherr |
Handle math errors |
Not applicable. |
__max |
Return larger of two values |
System::Math::Max |
__min |
Return smaller of two values |
System::Math::Min |
modf, modff |
Split argument into integer and fractional parts |
Not applicable. |
_nextafter |
Return next representable neighbor |
Not applicable. |
pow, powf |
Calculate value raised to a power |
System::Math::Pow |
printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l |
Write data to stdout according to specified format |
System::Console::Write, System::Console::WriteLine |
rand, rand_s |
Get pseudorandom number |
System::Random Class |
_rotl, _rotr |
Shift unsigned int left (_rotl) or right (_rotr) |
Not applicable. |
_scalb |
Scale argument by power of 2 |
Not applicable. |
scanf, wscanf, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l |
Read data from stdin according to specified format and write data to specified location |
System::Console::Read, System::Console::ReadLine |
_set_controlfp |
set new control-word value |
Not applicable. |
sin, sinf, sinh, sinhf |
Calculate sine or hyperbolic sine |
System::Math::Sin, System::Math::Sinh |
sqrt |
Find square root |
System::Math::Sqrt |
srand |
Initialize pseudorandom series |
System::Random Class |
_status87, _statusfp, _statusfp2 |
Get floating-point status word |
Not applicable. |
strtod, _strtod_l, wcstod, _wcstod_l |
Convert character string to double-precision value |
System::Convert::ToDouble |
tan, tanf, tanh, tanhf |
Calculate tangent or hyperbolic tangent |
System::Math::Tan, System::Math::Tanh |