首页 > 编程语言 >c++中nan,inf

c++中nan,inf

时间:2023-02-15 14:14:42浏览次数:39  
标签:1.0 0.0 nan c++ false inf Inf

nan: not a number 非数字

注意事项:对负数开方sqrt(-1.0)、对负数求对数(log(-1.0))、0.0/0.0、0.0*inf、inf/inf、inf-inf这些操作都会得到nan。(0/0会产生操作异常;0.0/0.0不会产生操作异常,而是会得到nan)

辨别方法:isnan() : ture is a nan, false otherwise

isnan(NaN) = true
isnan(Inf) = false
isnan(0.0) = false
isnan(DBL_MIN/2.0) = false
isnan(0.0 / 0.0) = true
isnan(Inf - Inf) = true

inf : infinity 无穷大的数,一般是超过浮点数的表示范围。
注意事项:

1. 1.0/0.0等于inf,-1.0/0.0等于-inf,0.0+inf=inf;

2. 1.0/inf等于0.0

3. inf是可以与其他浮点数进行比较的,即可以参与<=、>+、==、!=等运算。

辨别方法:isinf(): ture is a nan, false otherwise

isinf(NaN) = false
isinf(Inf) = true
isinf(0.0) = false
isinf(exp(800)) = true
isinf(DBL_MIN/2.0) = false

另一个辨别方法:isfinite():ture is a finite value, false otherwise。可用来一起判断inf和nan。


isfinite(NaN) = false
isfinite(Inf) = false
isfinite(0.0) = true
isfinite(exp(800)) = false
isfinite(DBL_MIN/2.0) = true

标签:1.0,0.0,nan,c++,false,inf,Inf
From: https://www.cnblogs.com/qdwilliam/p/17122567.html

相关文章

  • c++ 程序通用多线程单例设计 c++ web 框架设计经验谈
    设计c++web框架时候,想要一个框架缓存类,很多通用缓存类是用字符保存,作为框架内置就不要序列和反序列了,因为框架内部使用。想给自己的paozhuc++web框架添加缓存类,参考......
  • C++构造函数的两种实现方式
    C++构造函数的两种实现方式下面两种方式等价structListNode{intval;ListNode*next;ListNode(val){intval=val;next=nullptr......
  • C++ 计时
    ctimeclock()是一个无参函数,返回值是一个以毫秒为单位的整形#include<ctime>#include<iostream>longt1=clock();****Doingsomething......
  • C++特殊成员
    参考书籍:C++PrimerEssentialC++编译器:gcc/g++C++特殊成员const成员const修饰的数据成员初始化必须采用初始化参数列表不能被修改构造函数必须要初始化常数据成员cons......
  • C++基础入门(超详细)
    话不多说,序言搞起来:自从开始学老师布置的任务后,目前还是OpenCV,哈~哈。我就莫名问老师:“以后编程是用C++还是python?”,果然还是太年轻,老师说:“两们都要精通”。唉!于是乎为期......
  • c++函数指针
    函数的地址是存储其机器语言代码的内存的开始地址。通常,这些地址对用户而言,既不重要,也没有什么用处,但对程序而言,却很有用。例如,可以编写将另一个函数的地址作为参数的函数。......
  • 解决在Windows上Android Studio写C/C++代码无法补全,没有代码提示的问题
    之前一直在Linux上开发应用,最近因为工作需要,系统切回了Windows,因为之前在Linux上的AndroidStudio中写C/C++代码很正常,该有的代码提示功能都有。但是在迁移到Windows上后......
  • 界面控件DevExpress WinForm——轻松构建类Visual Studio UI(一)
    DevExpressWinForm拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风......
  • C++ uppper_bound 使用
     map的key,默认按照从小到达排序;upper_bound(4),  #include<iostream>#include<vector>#include<map>#include<algorithm>usingnamespacestd;intmai......
  • 实现C++和C的混合编程
    实现C++和C的混合编程在C++出现之前,很多实用的功能都是用C语言开发的,很多底层的库也是用C语言编写的。这意味着,如果能在C++代码中兼容C语言代码,无疑能极大地提......