_finite, _finitel:判断浮点数为实数:-∞ < x < +∞
函数原型:
int _finite(double x); |
int _finitel(long double x); |
头文件:
#include <cfloat>
命名空间:
std
参数:
x:浮点数,double 或 long double 类型
返回值:
≠0: 参数 x 为实数,即范围为 -∞ < x < +∞
=0: 参数 x 为 +INF、-INF 或 NAN
例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double z = 0.0;
double a = 1.0;
double b = -2.0;
UnicodeString s;
s.cat_sprintf(L"%4.1lf/%4.1lf = %4.1lf ; _finite(%4.1lf) = %d\r\n", a, z, a/z, a/z, std::_finite(a/z));
s.cat_sprintf(L"%4.1lf/%4.1lf = %4.1lf ; _finite(%4.1lf) = %d\r\n", b, z, b/z, b/z, std::_finite(b/z));
s.cat_sprintf(L"%4.1lf/%4.1lf = %4.1lf ; _finite(%4.1lf) = %d\r\n", z, z, z/z, z/z, std::_finite(z/z));
s.cat_sprintf(L"%4.1lf/%4.1lf = %4.1lf ; _finite(%4.1lf) = %d\r\n", a, b, a/b, a/b, std::_finite(a/b));
Memo1->Lines->Text = s;
} |
执行结果:1.0/0.0 和 -2.0/0.0 分别等于 +∞ 和 -∞;0.0/0.0 等于 NAN,他们都不是实数,只有 1.0/-2.0 等于 -0.5 是实数
兼容性:
相关链接:
• _finite • _isinf • _isnan • _fpclass • _control87 • SetExceptionMask • _matherr • 浮点数异常处理
|