今天遇到日志报错: INFINITY or NAN。排查代码后发现,是float做除法运算/0了。

在整型int运算中,除数是不能为0的,否则直接报异常。但是在浮点数运算中,是什么样呢?我们来看一下。

1.INFINITY:表示无限

观察下列输出的结果:

        double POSITIVE_INFINITY = 1.0 / 0.0;double NEGATIVE_INFINITY = -1.0 / 0.0;System.out.println(POSITIVE_INFINITY);System.out.println(NEGATIVE_INFINITY);float POSITIVE_INFINITY2 = 1.0f / 0.0f;float NEGATIVE_INFINITY2 = -1.0f / 0.0f;System.out.println(POSITIVE_INFINITY2);System.out.println(NEGATIVE_INFINITY2);

输出的结果:

Infinity
-Infinity
Infinity
-Infinity

再看下面的例子,以及输出结果:

        //无限乘以0,结果为NANSystem.out.println(Float.POSITIVE_INFINITY * 0); // output: NANSystem.out.println(Float.NEGATIVE_INFINITY * 0); // output: NAN//无限除以0,结果不变,还是无限System.out.println((Float.POSITIVE_INFINITY / 0) == Float.POSITIVE_INFINITY); // output: trueSystem.out.println((Float.NEGATIVE_INFINITY / 0) == Float.NEGATIVE_INFINITY); // output: true//无限做除了乘以0意外的运算,结果还是无限System.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY + 10000)); // output: trueSystem.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY - 10000)); // output: trueSystem.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY * 10000)); // output: trueSystem.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY / 10000)); // output: true

如何判断一个浮点数是否为INFINITY,可用isInfinite方法:

System.out.println(Double.isInfinite(Float.POSITIVE_INFINITY)); // output: true

2.NAN

System.out.println(0.0d / 0.0); //NaN

NAN表示非数字,它与任何值都不相等,甚至不等于它自己,所以要判断一个数是否为NAN要用isNAN方法:

System.out.println(Float.NaN == Float.NaN); // output: false
System.out.println(Double.isNaN(Float.NaN)); // output: true

报错NAN OR INFINITY相关推荐

  1. 解决PCL报错: Assertion `point_representation_->isValid (point) “Invalid (NaN, Inf) point coordinates

    参考资料: https://github.com/PointCloudLibrary/pcl/blob/master/kdtree/include/pcl/kdtree/impl/kdtree_fla ...

  2. 小程序报错:Failed to load local image resource /pages/goods/NaN加载资源失败问题解决

    小程序开发的时候遇到Failed to load local image resource /pages/goods/NaN 这个报错,有点懵逼,小程序上面也没发现有哪张图片显示不出来.只能用最笨的方 ...

  3. python 神经网络 多进程_使用python实现一段bp神经网络后,由于数据量增多(76条),出现nan报错...

    使用python实现一段bp神经网络后,由于数据量增多(76条),出现nan报错 代码如下: # coding:utf-8 import numpy as np import matplotlib.p ...

  4. LDA主题模型中coherence(一致性)报错得出来为nan解决办法

    参考链接: https://www.codenong.com/60246570/ 报错原因:D:\software\Anaconda\envs\LDA\lib\site-packages\gensim ...

  5. 【Pytorch】反向传播为NaN报错的排查解决方法,RuntimeError: Function ‘BmmBackward0‘ returned nan values

    最近在训练模型的过程中,反复出现方向传播至为NaN的报错,报错信息如下所示: File "/home/fu/anaconda3/envs/torch/lib/python3.7/site-p ...

  6. Error: <path> attribute transform: Expected number, “matrix(NaN,NaN,NaN,NaN,…“. echarts3D柱图报错

    今天画图时遇到报错:Error: <path> attribute transform: Expected number, "matrix(NaN,NaN,NaN,NaN,-&q ...

  7. idea运行项目工程json文件添加注释报错解决

    最近同时需要运行python和java工程,懒得切换编辑器,索性就都在idea中配置了运行环境.然而,运行python的项目工程时,在json文件中添加了注释就会报错,不注释就容易忘记字段,参考网上的 ...

  8. 【Three.js】关于Three.js的辅助库ststs.js报错的解决方案

    [Three.js](一) 了解Three.js基本的代码样式与运行结果 问题描述 解决方案 关于Three.js的问题,可以与作者共同讨论. 问题描述 作者初学Three.js,需要用到ststs. ...

  9. jupyter notebook报错:ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘解决方法

    今天在处理丢失数据时,运行下面代码报错 from sklearn.preprocessing import Imputer imputer = Imputer(missing_values = &qu ...

最新文章

  1. 可心耳语-属于网络工程师的人声电台(第一期)
  2. ArcGIS改变数据集或要素类的的坐标系(投影)
  3. 华为智能手环智能手表软件测试,一块智能手表的测试之旅,揭秘华为运动健康科学实验室...
  4. 2017.3.15 余数之和sum 失败总结
  5. Storm 配置说明
  6. python自学行吗-自学python有用吗?
  7. Mac上踩坑.net core开发
  8. spring源码:实例化bean的准备工作
  9. rgba 透明度转换十六进制
  10. 信息学奥赛一本通pdf_新手如何参加信息学竞赛NOIP,怎么入门(常见问题解答)?...
  11. 高斯消元解线性方程组
  12. C++练习 简易翻译器
  13. 【错误记录】Google Play 上架报错 ( 此版本不符合 Google Play 关于提供 64 位版本应用的要求。| 如果提供 x86 架构动态库则必须提供 x86_64 架构的动态库 )
  14. SpringBoot:EasyExcel动态字段(不创建对象)多sheet、多文件|压缩包格式导出
  15. 最后一天购书优惠!好书必买,不容错过!
  16. php使用aws的sns服务初探(主要是短信服务)
  17. Codeforces 750C New Year And Rating 二分判定
  18. rabbit-1简介
  19. 平台化TestStand常遇到的一些问题解决方案
  20. 解密蓝牙防丢器工作原理,让您避免遗失物品

热门文章

  1. Vue登录第2.1版
  2. java ctp行情_javaCtp: java版本期货程序化交易系统,包括行情服务,交易服务会逐步完善...
  3. 找不到 Web 地址对应的网页:_学习工具 | 网页视频下载工具 — — Web Video Downloader...
  4. jQuery.hasClass() 函数
  5. Oracle 数据仓库详解
  6. 生物医学工程领域 生物医学图像处理 SCI期刊
  7. 源码分享二:STM32风力摆代码 PID | 李萨如合成
  8. Linux环境模拟断网
  9. STM32单片机和51单片机区别
  10. 惊艳!28岁时就任副教授的她,如今已是211高校院长、博导!