浮点支持

许多 Microsoft 运行时库函数都需要数学协处理器或伴随编译器的浮点库中的浮点支持。 仅在需要时加载浮点支持函数。

当你使用对 printf 或 scanf 系列中某个函数的调用的格式字符串中的浮点类型说明符时,你必须指定浮点值或指向参数列表中的浮点值的指针,以告知编译器需要浮点支持。

有关显示如何处理浮点异常的示例代码,请参阅 _fpieee_flt

_control87、_controlfp、__control87_2 函数控制的中间值的浮点精度。 默认情况下,将 _controlfp 中的精度控制设置为 53 位 (_PC_53)。 使用 FP10.OBJ 进行链接会将默认精度控制更改为 64 位 (_PC_64)。 在链接器命令行上,FP10.OBJ 必须显示在 LIBC.LIB、LIBCMT.LIB 或 MSVCRT.LIB 之前。

浮点函数

例程

使用

.NET Framework 等效项

abs

返回 int 的绝对值

System::Math::Abs

acos、acosf

计算反余弦

System::Math::Acos

asin、asinf

计算反正弦

System::Math::Asin

atan、atanf、atan2、atan2f

计算反正切

System::Math::AtanSystem::Math::Atan2

atof、_atof_l、_wtof、_wtof_l

将字符字符串转换为双精度浮点值

System::Convert::ToSingleSystem::Convert::ToDouble

贝塞尔函数

计算贝塞尔函数 _j0、_j1、_jn、_y0、_y1、_yn

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关详细信息,请参见平台调用示例

_cabs

查找复数的绝对值

不适用。

cbrt

计算立方根

不适用。

ceil、ceilf

查找整数上限

System::Math::Ceiling

_chgsign、_chgsignf、_chgsignl

反转双精度浮点或长双精度浮点参数的符号

不适用。

_clear87、_clearfp

获取和清除浮点状态字

不适用。

_control87、_controlfp、__control87_2, _controlfp_s

获取旧的浮点控制字并设置新的控制字值

不适用。

copysign、copysignf、copysignl、_copysign、_copysignf、_copysignl

返回一个具有另一个值的符号的值

不适用。

cos、cosf、cosh、coshf

计算余弦

System::Math::CosSystem::Math::Cosh

difftime

计算两个指定的时间值之间的差值

System::DateTime::Subtract

div

将一个整数除以另一个整数,从而返回商和余数

不适用。

_ecvt, _ecvt_s

将 double 转换为指定长度的字符字符串

System::Convert::ToString

exp、expf

计算指数函数

System::Math::Exp

fabs、fabsf

查找绝对值

System::Math::Abs

_fcvt_fcvt_s

将 double 转换为具有小数点后指定位数的字符串

System::Convert::ToString

_finite

确定给定的双精度浮点值是否是有限的

System::Double::IsInfinity

floor、floorf

查找小于或等于参数的最大整数

System::Math::Floor

fmod、fmodf

查找浮点余数

System::Math::IEEERemainder

_fpclass

返回包含有关浮点类的信息的状态字

System::Double::IsInfinitySystem::Double::IsNegativeInfinitySystem::Double::IsPositiveInfinitySystem::Double::IsNan

_fpieee_flt

为 IEEE 浮点异常调用用户定义的陷阱处理程序

不适用。

_fpreset

重新初始化浮点数学包

 

frexp

计算指数值

不适用。

_gcvt_gcvt_s

将浮点值转换为字符字符串

System::Convert::ToString

hypot、hypotf、hypotl、_hypot、_hypotf、_hypotl

计算直角三角形的斜边

不适用。

_isnan

检查非数值 (NaN) 的给定双精度浮点值

System::Double::IsNan

labs

返回 long 的绝对值

System::Math::Abs

ldexp

计算参数和 2exp(指定的幂)的结果

System::Math::Pow

ldiv

将一个 long 整数除以另一个整数,然后返回商和余数

不适用。

log、logf、log10、log10f

计算自然对数或以 10 为底的对数。

System::Math::LogSystem::Math::Log10

_logb

提取双精度浮点参数的指数值

不适用。

_lrotl、_lrotr

将 unsigned long int 向左 (_lrotl) 或向右 (_lrotr) 移位

不适用。

_matherr

处理数学错误

不适用。

__max

返回两个值中较大的一个

System::Math::Max

__min

返回两个值中较小的一个

System::Math::Min

modf、modff

将参数拆分为整数部分和分数部分

不适用。

nan、nanf、nanl

返回 quiet NaN 值

System::Double::NaN

_nextafter

返回下一个可表示的邻近值

不适用。

pow、powf

计算乘幂的值

System::Math::Pow

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

根据指定格式将数据写入 stdout

System::Console::WriteSystem::Console::WriteLine

randrand_s

获取伪随机数

System::Random 类

rint, rintf, rintl

舍入到最接近的整数(采用浮点格式)

System::Math::Round

_rotl、_rotr

将 unsigned int 向左 (_rotl) 或向右 (_rotr) 移位

不适用。

_scalb

以 2 的幂缩放参数

不适用。

scalbn、scalbnf、scalbnl、scalbln、scalblnf、scalblnl

乘以 FLT_RADIX 的整数幂

不适用。

scanf, wscanfscanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l

按照指定的格式从 stdin 中读取数据并将数据写入指定的位置

System::Console::ReadSystem::Console::ReadLine

_set_controlfp

设置新的控制字值

不适用。

sin、sinf、sinh、sinhf

计算正弦或双曲正弦

System::Math::SinSystem::Math::Sinh

sqrt

计算平方根

System::Math::Sqrt

srand

初始化伪随机序列

System::Random 类

_status87、_statusfp、_statusfp2

获取浮点状态字

不适用。

strtod、_strtod_l、wcstod、_wcstod_l

将字符字符串转换为双精度值

System::Convert::ToDouble

tan、tanf、tanh、tanhf

计算正切或双曲正切

System::Math::TanSystem::Math::Tanh

请参见

参考

按类别分的运行时例程