报错NAN OR INFINITY
今天遇到日志报错: 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相关推荐
- 解决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 ...
- 小程序报错:Failed to load local image resource /pages/goods/NaN加载资源失败问题解决
小程序开发的时候遇到Failed to load local image resource /pages/goods/NaN 这个报错,有点懵逼,小程序上面也没发现有哪张图片显示不出来.只能用最笨的方 ...
- python 神经网络 多进程_使用python实现一段bp神经网络后,由于数据量增多(76条),出现nan报错...
使用python实现一段bp神经网络后,由于数据量增多(76条),出现nan报错 代码如下: # coding:utf-8 import numpy as np import matplotlib.p ...
- LDA主题模型中coherence(一致性)报错得出来为nan解决办法
参考链接: https://www.codenong.com/60246570/ 报错原因:D:\software\Anaconda\envs\LDA\lib\site-packages\gensim ...
- 【Pytorch】反向传播为NaN报错的排查解决方法,RuntimeError: Function ‘BmmBackward0‘ returned nan values
最近在训练模型的过程中,反复出现方向传播至为NaN的报错,报错信息如下所示: File "/home/fu/anaconda3/envs/torch/lib/python3.7/site-p ...
- Error: <path> attribute transform: Expected number, “matrix(NaN,NaN,NaN,NaN,…“. echarts3D柱图报错
今天画图时遇到报错:Error: <path> attribute transform: Expected number, "matrix(NaN,NaN,NaN,NaN,-&q ...
- idea运行项目工程json文件添加注释报错解决
最近同时需要运行python和java工程,懒得切换编辑器,索性就都在idea中配置了运行环境.然而,运行python的项目工程时,在json文件中添加了注释就会报错,不注释就容易忘记字段,参考网上的 ...
- 【Three.js】关于Three.js的辅助库ststs.js报错的解决方案
[Three.js](一) 了解Three.js基本的代码样式与运行结果 问题描述 解决方案 关于Three.js的问题,可以与作者共同讨论. 问题描述 作者初学Three.js,需要用到ststs. ...
- jupyter notebook报错:ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘解决方法
今天在处理丢失数据时,运行下面代码报错 from sklearn.preprocessing import Imputer imputer = Imputer(missing_values = &qu ...
最新文章
- 可心耳语-属于网络工程师的人声电台(第一期)
- ArcGIS改变数据集或要素类的的坐标系(投影)
- 华为智能手环智能手表软件测试,一块智能手表的测试之旅,揭秘华为运动健康科学实验室...
- 2017.3.15 余数之和sum 失败总结
- Storm 配置说明
- python自学行吗-自学python有用吗?
- Mac上踩坑.net core开发
- spring源码:实例化bean的准备工作
- rgba 透明度转换十六进制
- 信息学奥赛一本通pdf_新手如何参加信息学竞赛NOIP,怎么入门(常见问题解答)?...
- 高斯消元解线性方程组
- C++练习 简易翻译器
- 【错误记录】Google Play 上架报错 ( 此版本不符合 Google Play 关于提供 64 位版本应用的要求。| 如果提供 x86 架构动态库则必须提供 x86_64 架构的动态库 )
- SpringBoot:EasyExcel动态字段(不创建对象)多sheet、多文件|压缩包格式导出
- 最后一天购书优惠!好书必买,不容错过!
- php使用aws的sns服务初探(主要是短信服务)
- Codeforces 750C New Year And Rating 二分判定
- rabbit-1简介
- 平台化TestStand常遇到的一些问题解决方案
- 解密蓝牙防丢器工作原理,让您避免遗失物品
热门文章
- Vue登录第2.1版
- java ctp行情_javaCtp: java版本期货程序化交易系统,包括行情服务,交易服务会逐步完善...
- 找不到 Web 地址对应的网页:_学习工具 | 网页视频下载工具 — — Web Video Downloader...
- jQuery.hasClass() 函数
- Oracle 数据仓库详解
- 生物医学工程领域 生物医学图像处理 SCI期刊
- 源码分享二:STM32风力摆代码 PID | 李萨如合成
- Linux环境模拟断网
- STM32单片机和51单片机区别
- 惊艳!28岁时就任副教授的她,如今已是211高校院长、博导!