美文网首页
小心浮点数溢出

小心浮点数溢出

作者: ChrisWhite | 来源:发表于2019-11-15 14:15 被阅读0次

平时编码相对关注整形溢出情况,对于浮点数考虑溢出情况关注较少,因为计算性能的缘故本身使用浮点数的时机就很少,而且也很少会用到较大的数。

但是如果使用pow之类的函数的时候,就要关注下是否会有溢出的情况。

例如:

double fTemp1 = pow(-1.2, -1.2);        // 会得到-nan(ind)

double fTemp2 = pow(10.0, 330.0);     // 会得到inf

INF:表示“无穷大inf (infinity 的缩写)”,即超出了计算机可以表示的浮点数的最大范围

IND:它们来自于任何未定义结果(非法)的浮点数运算。"IND"是 indeterminate 的缩写,而"nan"是 not a number 的缩写

如果产生了这些结果,后续的计算的值就无法预测了,因此有条件要将计算限定在安全的范围内

如若不然,则需要增加对应的条件判断,有一些宏可以用作判断:

VS有提供一个名为float.h的文件,里面有对应浮点数的一些关键宏可以用做判断。

例如

#define DBL_MAX          1.7976931348623158e+308 // max value

#define DBL_MAX_10_EXP   308                     // max decimal exponent

#define DBL_MAX_EXP      1024                    // max binary exponent

#define DBL_MIN          2.2250738585072014e-308 // min positive value

#define DBL_MIN_10_EXP   (-307)                  // min decimal exponent

#define DBL_MIN_EXP      (-1021)                 // min binary exponent

另外,也可以考虑开启浮点数异常,及时知晓有问题存在,开启方式:

    unsigned int cw;

    _controlfp_s(&cw, 0, 0); 

    cw &= ~(EM_OVERFLOW | EM_UNDERFLOW | EM_ZERODIVIDE |

                     EM_DENORMAL | EM_INVALID);

    unsigned int cwOriginal;

    _controlfp_s(&cwOriginal, cw, MCW_EM); //Set it.

参考资料:

https://blog.csdn.net/happyflovef/article/details/6168507

相关文章

  • 小心浮点数溢出

    平时编码相对关注整形溢出情况,对于浮点数考虑溢出情况关注较少,因为计算性能的缘故本身使用浮点数的时机就很少,而且也...

  • 第一章 计算机硬件基

    一、概要 1、数据的表示:数制及其转换、原码、反码、补码、移码、浮点数、溢出、算...

  • python基础

    python整数和浮点数 一般而言,应优先考虑使用整数而不是浮点数,因为它们更精确且绝不会溢出。 python浮点...

  • JavaScript优化总结

    建议一:防止浮点数溢出 建议二:慎用JavaScript类型自动转换 建议三:正确检测数据类型 使用typeof运...

  • 改善JavaScript程序的188个建议-读书笔记

    建议一:防止浮点数溢出 建议二:慎用JavaScript类型自动转换 建议三:正确检测数据类型 使用typeof运...

  • 1数据结构

    def sizeof 看int的字节是4 赋值计算,自右向左计算。 数据溢出 舍入误差 float浮点数据 \n...

  • 浮点数的比较&初识String

    小心使用浮点数进行比较 浮点数没有绝对的相等,只有近似的相等。Java中只有整数才有绝对的相等。 例如: 结果:t...

  • 三行•花季雨季

    没伞时 脑子容易进水 一不小心就溢出

  • 脑子进水

    眼泪多,只能代表脑子进了太多水,不小心一次次的溢出来,溢出来后还是不长记性~

  • 《Javascript语言精粹》笔记

    语法 1.数字 a. javascript只有一种数字类型,表示64位的浮点数,避免了短整型的溢出问题。1和1.0...

网友评论

      本文标题:小心浮点数溢出

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