zoukankan      html  css  js  c++  java
  • 判断一个浮点数是否为NAN(INF)

    NAN(wiki  en   中文)是指not a number。

    INF(wiki en   中文)Infinity(无穷)。

    浮点数变成NAN:

    ① 有一个及以上参数为NaN时    如:1.0f/NaN、1.0f*NaN、NaN+1.0f、NaN-1.0f、Nan^1.0f等

    ② 下列运算的情况
        除法:0/0、∞/∞、∞/(−∞)、(−∞)/∞、(−∞)/(−∞)
        乘法:0*∞、0*−∞
        加法:∞ + (−∞)、(−∞) + ∞
        减法:∞ - ∞、(−∞) - (−∞)
        指数:0^0、∞^0、1^∞、∞^(−∞)

    浮点数变成+INF(极大值)  如:1.0f/0

    浮点数变成-INF(极小值)  如:-1.0f/0

    可以使用下列函数来判断该值是否为NAN(INF)。

    C库函数(需要#include <float.h>)

    int _isnan(double);  // 是否为nan   当为NAN时,返回1;其他情况返回0

    int _finite(double);  // 是否为有限数   当为NAN、+INF、-INF时,返回0;其他情况返回1

    float f1 = 1.0;
    float f2 = -1.0;
    float f3 = 0.0;
    
    float f4 = f1/f3;//1.#INF000
    float f5 = f2/f3;//-1.#INF000
    float f6 = f3/f3;//-1.#IND000
    float f7 = -f3/f3;//-1.#IND000
    
    float f8 = f4/f4;//-1.#IND000
    float f9 = f5/f5;//-1.#IND000
    float fa = -f4/f4;//-1.#IND000
    float fb = f1/f6;//-1.#IND000
    float fc = f2/f6;//-1.#IND000
    float fd = f6/f1;//-1.#IND000
    float fe = f6/f2;//-1.#IND000
    float ff = f7/f7;//-1.#IND000
    
    float fg = f4/f3;//1.#INF000
    float fi = f5/f3;//-1.#INF000
    
    int n0 = _isnan(f1);//0
    int n1 = _finite(f1);//1
    int n2 = _isnan(f2);//0
    int n3 = _finite(f2);//1
    int n4 = _isnan(f3);//0
    int n5 = _finite(f3);//1
    int n6 = _isnan(f4);//0
    int n7 = _finite(f4);//0
    int n8 = _isnan(f5);//0
    int n9 = _finite(f5);//0
    int na = _isnan(f6);//1
    int nb = _finite(f6);//0
    
    bool b1 = (f1==f1);//true
    bool b2 = (f2==f2);//true
    bool b3 = (f3==f3);//true
    bool b4 = (f4==f4);//true
    bool b5 = (f5==f5);//true
    bool b6 = (f6==f6);//vc6下b6为true,vs2008下b6为false

  • 相关阅读:
    sqlhelper使用指南
    大三学长带我学习JAVA。作业1. 第1讲.Java.SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行 大三学长带我学习JAVA。作业1.
    pku1201 Intervals
    hdu 1364 king
    pku 3268 Silver Cow Party
    pku 3169 Layout
    hdu 2680 Choose the best route
    hdu 2983
    pku 1716 Integer Intervals
    pku 2387 Til the Cows Come Home
  • 原文地址:https://www.cnblogs.com/kekec/p/1979823.html
Copyright © 2011-2022 走看看