主页C++ Builder 资料C++ Builder 参考手册cfloat 浮点数_chgsign, _chgsignl
C++ Builder 串口控件
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
基础知识
cfloat 浮点数
 • 浮点数类型
 • 浮点数异常处理
 • _finite, _finitel
 • _isinf, _isinfl
 • _isnan, _isnanl
 • _fpclass, _fpclassl
 • _chgsign, _chgsignl
 • _copysign, _copysignl
 • _logb, _logbl
 • _scalb, _scalbl
 • _nextafter, _nextafterl
 • _clear87, _clearfp
 • _control87, _controlfp
 • _status87, _statusfp
 • _fpreset
cmath 数学函数
cstdlib 标准库函数
System 字符串
System 日期和时间
System.Math.hpp 数学函数
其他数据类型
VCL 基础类
VCL 应用程序
Pictures 图片
Graphics 绘图
Additional 控件
System 控件
A ~ Z 字母顺序排列的目录
网友留言/技术支持
_chgsign, _chgsignl - 浮点数的符号取反,正数变负数,负数变正数

_chgsign, _chgsignl:浮点数的符号取反,正数变负数,负数变正数

函数原型:

double _chgsign(double x);
long double _chgsignl(long double x);

头文件:

#include <cfloat>

命名空间:

std

参数:

x:浮点数

返回值:

返回值为 x 值取反,正数变负数,负数变正数,绝对值不变

例子:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  UnicodeString s;
  s.cat_sprintf(L"_chgsign(%9llg) = %9llg\r\n",  NaN        , std::_chgsignl( NaN        ));
  s.cat_sprintf(L"_chgsign(%9llg) = %9llg\r\n", -NaN        , std::_chgsignl(-NaN        ));
  s.cat_sprintf(L"_chgsign(%9llg) = %9llg\r\n",  Infinity   , std::_chgsignl( Infinity   ));
  s.cat_sprintf(L"_chgsign(%9llg) = %9llg\r\n", -Infinity   , std::_chgsignl(-Infinity   ));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  ,  2.5        , std::_chgsign ( 2.5        ));
  s.cat_sprintf(L"_chgsign(%9llg) = %9llg\r\n",  NegInfinity, std::_chgsignl( NegInfinity));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  , -2.5        , std::_chgsign (-2.5        ));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  ,  0.0        , std::_chgsign ( 0.0        ));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  , -0.0        , std::_chgsign (-0.0        ));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  ,  1.23e56    , std::_chgsign ( 1.23e56    ));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  , -1.23e56    , std::_chgsign (-1.23e56    ));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  ,  1.23e-56   , std::_chgsign ( 1.23e-56   ));
  s.cat_sprintf(L"_chgsign(%9lg) = %9lg\r\n"  , -1.23e-56   , std::_chgsign (-1.23e-56   ));
  Memo1->Lines->Text = s;
}

兼容性:

clang64 编译器没有这一组函数,也许这一组函数没什么用,从例子程序测试结果来看,与直接用负号 “-” 的效果是一样的

函数 \ C++ Builder 编译器 bcc32 clang32 clang64
_chgsign  
_chgsignl  

相关链接:

_copysigncopysign_finite_isinf_isnan_fpclass_matherr浮点数异常处理

◤上一页:_fpclass, _fpclassl下一页:_copysign, _copysignl

C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号