java除法运算中Nan和Infinity是由什么决定的

2024-01-10

下面代码的输出让我感到困惑。为什么NaN有时是无穷大,有时是无穷大?

public static void main (String[] args) {

    double a = 0.0;
    double b = 1.0;
    int c = 0; 
    System.out.println(a/0.0);
    System.out.println(a/0);
    System.out.println(b/0.0);
    System.out.println(b/0);
    System.out.println(c/0.0);
    System.out.println(c/0);
}

输出是:

NaN
NaN
Infinity
Infinity
NaN
Exception in thread "main" java.lang.ArithmeticException: / by zero

这里的决定因素是什么?


这是因为IEEE 浮点运算标准 (IEEE 754)它是由电气和电子工程师协会 (IEEE) 于 1985 年制定的浮点计算技术标准。


目的:

IEEE 浮点标准,.. 规定每个浮点 点算术运算,包括除以零,有一个 明确的结果。该标准支持有符号零,以及infinity and NaN(不是数字)。有两个零:+0(正零)和−0(负零)删除任何 划分时的歧义.


规则:

在 IEEE 754 算术中,a ÷ +0 is 正无穷大 when a is positive, 负无穷大 when a is negative, and NaN when a = ±0.


Source https://en.wikipedia.org/wiki/Division_by_zero

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java除法运算中Nan和Infinity是由什么决定的 的相关文章

  • 如何使用retrofit2动态设置超时?

    public class Router private static Retrofit retrofit null public Retrofit getRetrofit if retrofit null OkHttpClient clie
  • jvm中本机代码如何转换为机器代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过一些文章说 jvm将字节码转换为机器码 jvm将字节码转换为本机代码 jvm 将字节码转换为系统调用 系统调用又由操作系统与硬件
  • 帮助我避免 JPA、Hibernate 和 MySQL 的连接超时

    我正在使用 JPA Hibernate 作为提供者 Glassfish 和 MySQL 开发中一切都运行良好 但是当我将应用程序部署到测试服务器并让它运行 大部分空闲 过夜时 我通常会在早上遇到这样的情况 2011 03 09T15 06
  • jpa2 CriteriaBuilder order by “ORDER BY 表达式必须出现在选择列表中”

    我正在写一个查询标准生成器 但无法添加order by子句 因为它随消息一起抛出错误ORDER BY 表达式必须出现在选择列表中这是我的实体 public class A Integer aId ManyToOne JoinColumn n
  • 从字符串生成密钥?

    我需要从字符串生成一个密钥 以便我始终可以从同一字符串创建相同的密钥 具体来说是一个Key对象 这样我就可以用它来创建Cipher进而创建SealedObject 这在 Java 中可行吗 我应该考虑什么类 方法组合才能做到这一点 对于 A
  • 使用 Hibernate Dialect 设置表字符集/排序规则?

    我使用 Hibernate MySQLInnoDB Dialect 来生成 DDL hibernate cfg xml
  • 按文件名过滤 eclipse 中的警告

    我们使用 Eclipse 进行 Java 开发 并使用 Maven 将 JSP 编译成 servlet 以便在嵌入式 Jetty 实例中使用 这意味着要从 Eclipse 运行该项目 我必须包含 target jsp source 作为源文
  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • 两条腿的 OAuth 和 Gmail Atom feed

    我们正在尝试让 2 legged OAuth 与 Gmail Atom feed 一起使用 我们使用 John Kristian Praveen Alavilli 和 Dirk Ba lfanz 贡献的 Java 库 http oauth
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • 获取包中声明的所有 Java 类的名称

    我正在编写一个功能 它将有助于将类放入我的程序的某个包中 另外 我只想要子类某个类的类 我需要这些类才能调用它们的静态方法 有没有一种自动的方法来做到这一点 如果是的话 速度慢吗 如果我不清楚 我想要的是这样的 ArrayList
  • 春季MVC。方法参数字段的默认值

    我有一个带有方法测试的简单控制器 RequestMapping produces application json ResponseBody public HttpEntity
  • 如何在Java中模拟引用传递?

    我是一个十足的 Java 菜鸟 我知道 Java 将所有参数视为按值传递 并且还有其他几个线程人们对此进行了解释 例如 在 C 中我可以这样做 void makeAThree int n n 3 int main int myInt 4 m
  • Java 验证日期为 yyyyMMddHHmmss

    我想在java中验证给定的日期格式为yyyyMMddHHmmss 状况 应符合格式 yyyyMMddHHmmss 它应该验证当前日期 它应该验证与当前小时有 3 小时或 3 小时差异的小时数 如果满足所有三个条件 Java 方法应返回 tr
  • while 之后无法访问的语句[重复]

    这个问题在这里已经有答案了 我只是修改代码 在以下代码中出现错误 int x 1 System out println x x while true x System out println x x 错误在最后一行 我可以知道错误 错误 无
  • Spring Transactional 减慢了整个过程

    我正在尝试分析我有两堂课的情况 其中一个类是 ProcessImpl 它是起点并在内部调用其他子事务 我不知道出了什么问题 processImpl正在导入一些东西并将相关数据写入数据库 Specs Spring orm版本 3 2 18 发
  • Struts2中的变量声明

    Struts2中如何声明变量并为该变量赋值 使用设置标签
  • 使用正则表达式匹配阿拉伯文文本

    我试图使用正则表达式仅匹配阿拉伯语文本 但出现异常 这是我的代码 txt matches P Arabic 这是例外情况 线程 main 中的异常 java util regex PatternSyntaxException 索引 9 附近
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException

随机推荐

  • 什么是流处理中的背压?

    我开始学习 NodeJS 流似乎是人们经常使用的东西 在我读过的大多数文档中都提到了处理大文件时发生的 背压问题 但我还没有找到这个问题到底是什么的明确解释 我还读到使用管道可以帮助解决这个问题 但是管道到底如何解决背压问题呢 感谢您提前的
  • 向自定义验证器添加错误消息

    我有一个自定义验证器 我试图在失败时输出错误消息 但无法这样做 有人可以告诉我我是否在正确的地方执行此操作 class User lt ActiveRecord Base self table name user attr accessib
  • 当给定“const char *”作为第一个参数时,为什么 C 标准库函数“strchr”返回指向非常量的指针?

    使用 gcc g 成功编译给定的代码示例 没有错误strchr调用 这显然分配了const char to char 我发现了strchr被声明为char strchr const char int 在两个不同的来源pubs opengro
  • 如何向上下文添加透明渐变蒙版

    我正在使用quartz 2d 绘制饼图 我使用图层在底部绘制饼图的反射 我想在反射中添加透明的 alpha 渐变 使其变得越来越透明 直到它变得不可见 有人有主意吗 编辑 更多细节 我的饼图位于 CGLayerRef 中 我首先将此层绘制到
  • 找不到从 cronjob 命令运行的 bash 脚本

    我的 crontab 如下 SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 01 04 root home sphinx scripts daily update
  • 最终与易失性保证对象的安全发布

    来自 Java并发实践 一书 为了安全地发布对象 对对象的引用和 对象的状态必须可见 同时其他线程 A 正确构造的对象可以是 安全发布者 从静态初始化器初始化对象引用 将对它的引用存储到易失性字段或 AtomicReference 中 将对
  • 在 Vue.js 应用程序上使用 Google (GIS) 登录

    显然谷歌将停止服务gapi oauth2 我正在尝试使用他们的新 使用 Google 登录 工具 但它们非常令人困惑 项目结构我有一个 Vue 前端 我需要允许用户使用 google 登录 然后 我需要使用 OIDC 服务器流在我的后端对它
  • Django数据库:按相关数据库中最新对象的字段排序

    我在 django 中有两个数据库表 Device 表用于存储实际设备 DeviceTest 表用于存储每个设备的测试检查 对一个设备进行多次测试 class Device models Model created at models Da
  • 在 .net4 上升级到 EF6 - System.Data.MetadataException:指定的架构无效

    我有一个在 net v4 下运行的 asp net 网站 我已从 Entity Framework v5 升级到 v6 02 并且使用 nuget 提供的 EntityFramework v4 dll 在 IIS Express 和 net
  • Java中如何正确获取线程名称?

    我有这个类用于在 Java 中创建线程 package org vdzundza forms import java awt Graphics import java awt Graphics2D public class DrawThre
  • CSS如何使div水平居中

    我正在努力使 div 水平居中 我有以下代码将我的 div 垂直和水平地居中在 body 标记中 但似乎只有垂直部分有效 我怎样才能让水平部分也能工作 提前致谢 body background color 081418 font size
  • 定义一个不可见的类方法是“public”的简写吗?

    我经常看到没有可见性关键字定义的函数代码 例如 class Foo function bar 是不是的简写public功能 省略它是一个好习惯吗 class Foo public function bar 是的你是对的 当您省略可见性修饰符
  • vue.js 应用程序中静态资源的路径

    我正在开发一个基于 vue cli webpack 模板的单页面应用程序 由于我们也必须使用静态资源 因此我们需要在样式表中引用它们 官方文档建议使用绝对路径 如下所示 background image url assets images
  • 观察其他观察者未看到的值

    我有一个可观察的值 它发出独特的值 例如 var source Observable Range 1 100 Publish source Connect 我想观察它的价值 例如两个观察者 但每个观察者仅收到其他观察者未看到的值的通知 因此
  • opencv中有没有相当于matlab conv2的函数

    matlab函数conv2有直接的opencv函数吗 我尝试使用 cvFilter2D 但它似乎给出了与 conv2 不同的结果 例如 CvMat Aa cvCreateMat 2 2 CV 32FC1 CvMat Bb cvCreateM
  • 如何在R中按两列进行分组

    我有一个数据框 我试图对其进行分组 然后根据两列求和 两列是字符 其中一列是月份 另一列是变量 以下是数据框架和结构的示例 row names month variable amount 1 1 Jan x 1000 2 1 Jan x 3
  • 在R中将两列合并为一列[重复]

    这个问题在这里已经有答案了 我有以下数据框 并尝试将两列合并为一列 同时替换NA与数值 ID A B 1 3 NA 2 NA 2 3 NA 4 4 1 NA 我想要的结果是 ID New 1 3 2 2 3 4 4 1 提前致谢 在编写答案
  • 在 pyspark databricks 中并行执行多个笔记本

    问题很简单 master dim py calls dim 1 py and dim 2 py并行执行 这在 databricks pyspark 中可能吗 下图解释了我想要做什么 由于某种原因它出错了 我在这里遗漏了什么吗 仅供其他人使用
  • npm install:使用全局包(如果存在),而不是安装两次

    使用时npm install with a package json文件 如何让它使用符合条件的全局安装的软件包 而不是再次在本地下载并安装该软件包 我知道关于link https docs npmjs com cli link 但是有办法
  • java除法运算中Nan和Infinity是由什么决定的

    下面代码的输出让我感到困惑 为什么NaN有时是无穷大 有时是无穷大 public static void main String args double a 0 0 double b 1 0 int c 0 System out print