美文网首页
浮点类型变量的状态

浮点类型变量的状态

作者: Jake_Yang | 来源:发表于2019-11-27 17:04 被阅读0次

一个float或double变量除了表示数值之外,其实它还存在另外两种状态即 NaNInf. 如果使用这两种状态来计算时,将会产生不可预计的结果. 所以在使用浮点型变量前,应该对变量的状态进行判断,并做对应处理.<br />

Qt 对于这种两种状态判断可以分别使用 qIsNaNqIsInf来判断.<br />在C库 math.h 里, 可以用使用 isnan(double)isinf(double)来判断.<br />下面举例说明:

double f1 = 1.0;
double f2 = -1.0;
double f3 = 0.0;

double f4 = f1 / f3; // INF
double f5 = f2 / f3; // INF
double f6 = f3 / f3; // NaN
double f7 = -f3 / f3; // NaN

double f8 = f4 / f4;
double f9 = f5 / f5;
double fa = -f4 / f4;
double fb = f1 / f6;
double fc = f2 / f6;
double fd = f6 / f1;
double fe = f6 / f2;
double ff = f7 / f7;

double fg = f4 / f3;
double fh = f5 / f3;

qDebug("%s(%s)[%d] NaN:\n f1(%d)\n f2(%d)\n f3(%d)\n f4(%d)\n f5(%d)\n f6(%d)\n f7(%d)\n f8(%d)\n f9(%d)\n fa(%d)\n fb(%d)\n fc(%d)\n fd(%d)\n fe(%d)\n ff(%d)\n fg(%d)\n fh(%d)\n", __FILE__, __func__, __LINE__,
    qIsNaN(f1), qIsNaN(f2), qIsNaN(f3), qIsNaN(f4), qIsNaN(f5), qIsNaN(f6), qIsNaN(f7), qIsNaN(f8), qIsNaN(f9), qIsNaN(fa), qIsNaN(fb), qIsNaN(fc),
    qIsNaN(fd), qIsNaN(fe), qIsNaN(ff), qIsNaN(fg), qIsNaN(fh));
qDebug("%s(%s)[%d] Inf:\n f1(%d)\n f2(%d)\n f3(%d)\n f4(%d)\n f5(%d)\n f6(%d)\n f7(%d)\n f8(%d)\n f9(%d)\n fa(%d)\n fb(%d)\n fc(%d)\n fd(%d)\n fe(%d)\n ff(%d)\n fg(%d)\n fh(%d)\n", __FILE__, __func__, __LINE__,
    qIsInf(f1), qIsInf(f2), qIsInf(f3), qIsInf(f4), qIsInf(f5), qIsInf(f6), qIsInf(f7), qIsInf(f8), qIsInf(f9), qIsInf(fa), qIsInf(fb), qIsInf(fc),
    qIsInf(fd), qIsInf(fe), qIsInf(ff), qIsInf(fg), qIsInf(fh));

规律:

  • 0除以 0 ,得到一个 NaN
  • Inf除以一个非 0值,得到一个 NaN
  • 任何数据除以一个 Inf, 得到一个 NaN
  • 一个非 0 数据除以 0 ,将得到一个 Inf

相关文章

  • 浮点类型变量的状态

    一个float或double变量除了表示数值之外,其实它还存在另外两种状态即 NaN 和 Inf. 如果使用这两...

  • C语言基础

    C 变量: 变量的数据类型: 变量按照数据的分类分为整数和浮点数 不同变量的数据类型是不同的 数据类型有整型,浮点...

  • Bash脚本编程(2)——编程入门

    @(Bash)[编程入门] 1. Bash中的变量 1.1 变量类型 字符型 数值型 整型 浮点型 语言类型: 强...

  • Python 学习笔记-变量和类型

    #笔记:变量和类型 ''' 基本变量和类型:整数,浮点数,字符串,布尔值,空值,函数,模块,类型,自定义类型 ''...

  • php变量和数据类型

    php中的变量 PHP中的变量声明 PHP中的变量的使用 PHP中的数据类型之整型 PHP数据类型之浮点类型和布尔...

  • PHP面试常问问题

    PHP变量类型: Boolean 布尔类型 Integer 整型 Float 浮点型 String 字符串 Arr...

  • 变量

    变量 变量:命名的内存空间 数据存储方式: 字符: 数值:整型,浮点型 变量:变量类型 作用: 1. 数据存储格式...

  • Python

    Python 算术运算符 假设变量a为20,变量b为10 变量的类型 整据类型可分为整数(int)浮点数(floa...

  • php强制转换为浮点型float

    从效果图中可以看到变量m跟变量w在未强制转为浮点型时的类型是string,字符串类型,强制转换类型后,变量m的结果...

  • Linux shell

    变量、变量类型 shell的数据类型主要有字符串,整数,数组,至于浮点数很少使用。变量的定义和使用如下: 并且整数...

网友评论

      本文标题:浮点类型变量的状态

      本文链接:https://www.haomeiwen.com/subject/detmwctx.html