java中的“我”不是“我”,NaN特殊标识以及正无穷+负无穷应该等于多少?
上文:Java虚拟机规范.Java SE 8版中关于浮点类型的说明,Infinity和-Infinity
给大家提到一个小的知识点,即浮点数的0,它有正负之分
作为分母不会产生java.lang.ArithmeticException: / by zero
,而是得到正负无穷大,
说明
至于为什么,这是IEEE 754标准定义的,→标准传送门
在《Java虚拟机规范.Java SE 8版》第二章第三节有如下描述
那我就好奇了,你说正无穷+负无穷应该等于多少,会是零吗?
代码
public static void main(String[] args) {float f1 = 1f;float f2 = 0.0f;float f3 = -0.0f;float res = (f1/f3+f1/f2);System.out.println(" f2 == f3 is "+(f2==f3));// trueSystem.out.println(" f1 / f2 = "+f1/f2);// Infinity 无穷大System.out.println(" f1 / f3 = "+f1/f3);// -Infinity 负无穷小/*** 负无穷+正无穷 = NaN (即无效的运算操作)*/System.out.println("(f1 / f3)+(f1 / f2) = "+ res);// NaN/*** ”我“不是”我“*/System.out.println(" res == res is "+(res==res));// false}
实验结果表明,java 虚拟机认为我太无聊了,懒得搭理我,直接返回了个NaN
NaN
的全称是Not-a-Number,它是IEEE标准定义的一个特殊的“非数字”标识,用来表示某些无效的运算操作,例如0除0等情况,→标准传送门
而且它还是java中唯一一个“我”不是“我”的“数据”,狠起来不止是六亲不认,连自己都不认
在书中是这样描述的
总结:
- 浮点类型中,负零等于正零
- 1除以正零得到正无穷大 1除以负零得到负无穷小
- 正无穷大+负无穷小 = NaN,意思是不允许这么操作
- NaN和任何数比较都返回false,包括自己;不仅六亲不认,自己也不认
别问为什么,问就去看IEEE 754标准→标准传送门
java中的“我”不是“我”,NaN特殊标识以及正无穷+负无穷应该等于多少?相关推荐
- c语言 判断float无穷大,C++ 浮点数(double float)如何定义NaN 正无穷 负无穷,以及如何判断是否是NaN...
NaN :阶码的每个二进制位全为1 并且 尾数不为0: 无穷:阶码的每个二进制位全为1 并且 尾数为0:符号位为0,是正无穷,符号位为1是负无穷. 所以NaN.正无穷.负无穷可以如此定义,可以 ...
- matlab编程积分正无穷,matlab中,对1/(x+10^-6i)积分,积分区间是负无穷到正无穷,怎么积?...
满意答案 沁心静暖 2016.05.19 采纳率:50% 等级:12 已帮助:4049人 积分很简单,所以先手算出积分,再正负无穷带进去让matlab算 -------------------- ...
- Java中的反射(Reflection)为什么叫“反射”?什么是“正射”?如何自定义注解并解析?
文章目录 反射的定义 什么是"正射" 反射的作用 反射的定义 计算机科学中的反射(reflection) 指计算机程序在运行时(runtime) 可以访问.检测和修改它本身状态或行 ...
- c#获取对象的唯一标识_在 Java 中利用 redis 实现分布式全局唯一标识服务
作者: 杨高超 juejin.im/post/5a4984265188252b145b643e 获取全局唯一标识的方法介绍 在一个IT系统中,获取一个对象的唯一标识符是一个普遍的需求.在以前的单体应用 ...
- java中的NAN和INFINITY
2019独角兽企业重金招聘Python工程师标准>>> java浮点数运算中有两个特殊的情况:NAN.INFINITY. 1.INFINITY: 在浮点数运算时,有时我们会遇到除数为 ...
- Java中遭遇NaN
虽然几乎每种处理器和编程语言都支持浮点运算,但大多数程序员很少注意它.这容易理解 ,我们中大多数很少需要使用非整数类型.除了科学计算和偶尔的计时测试或基准测试程序,其它情况下几乎都用不着它.同样,大多 ...
- Java中的NaN(非数)、Infinity(无穷大)
直接上图: 为什么判断自己等于自己 结果还是 false? 先来说一下NaN 和 Infinity Java中提供了三个特殊的浮点数值:正无穷大.负无穷大.非数,用来表示溢出和出错.(只针对浮点数) ...
- java中 Nan是什么意思
NaN,是Not a Number的缩写. NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根.由上面的表中可以看出,对于单精度浮点数,NaN 表示为指数为 emax ...
- 在java中nan什么意思_显示nan什么意思 程序计算结果显示NaN是什么原因
java中NaN是什么意思 NaN,是Not a Number的缩写. NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者CSS布局HTML小编今天和大家分享负数的平方根.由上面的 ...
最新文章
- 安装JDK出现Windows Installer程序包有问题,此安装需要的DLL不能运行...
- factorybean 声明_阿里面试题:BeanFactory与FactoryBean的区别
- WINDOWS SERVER 2003 DHCP服务器全攻略
- Android 拍照、从相册选择图片
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](4)
- 一个自动生成关键字索引页面的比处理文件
- Storm集群使用DRPC功能Version1.0.1
- 组态王opc_组态王和西门子S7300、S7400系列PLC通讯的几种配置方案
- SK海力士收购英特尔NAND闪存业务已获韩国公平贸易委员会批准
- mysql中更改字符集为utf8mysql中文输入不了问题解决
- 如何把pdf转换成word文档?
- Swift游戏实战-跑酷熊猫 08 产生源源不断的移动平台
- 解决linux 上网速度慢的问题
- 爬虫实例二:爬取拉勾网招聘信息
- 微信小程序:常用功能6——点击图片,实现图片的预览功能wx.previewImage(Object object, boolean showmenu)
- 你要的在这里,自己维护的石墨文档
- Three.js实现的网站页面金字塔模型显示
- python为字体添加上下标
- GATOR齿轮---凯利讯半导体
- 强化学习之 PPO 算法
热门文章
- WLAN框架应用笔记
- 在iPhone上实现标签云
- 苏宁Java开发面试
- 嵌入式驱动编写-点亮LED驱动程序
- 教程-mac版本texpad配置中文环境教程
- 遇到问题:(已解决)Texpad无法编译--“未找到TeX发型版 没有在您的系统中找到TeX发行版。....或安装您的TeX发行版”
- 在线PS入门教程:如何对人像快速抠图
- Kaggle Faster Data Science Education coursera
- 汽车UDS诊断详解及Vector相关工具链使用说明——6.2 VT System 入门
- [附源码]java毕业设计校园志愿者服务管理系统