当前位置: 首页 > 面试题库 >

为什么整数除以零1/0会产生错误,但浮点数1 / 0.0会返回“ Inf”?

柏阳炎
2023-03-14
问题内容

我对此很好奇:

使用1/0Java进行评估时,会发生以下异常:

线程“主”中的异常java.lang.ArithmeticException:/在Foo.main(Foo.java:3)处为零

但是1/0.0被评估为Infinity

public class Foo {
    public static void main (String[] args) {
        System.out.println(1/0.0);
    }
}

为什么会这样?


问题答案:

这是因为整数没有+/- Inf,NaN的值,并且不允许除以0,而浮点数确实具有这些特殊值。



 类似资料:
  • 问题内容: 因此,如果我有一个范围为‘0-1024’的数字,并且希望将其取为‘0-255’,那么数学将决定将输入除以输入的最大值(在这种情况下为1024),从而得出我的数字介于0.0-1.0之间。然后将其乘以目标范围(255)。 我要做什么! 但是由于Java中的某些原因(使用处理),它将始终返回值0。 该代码将像这样简单 但是我只得到0.0。我已经尝试过两次和诠释。一切都无济于事。为什么!? 问

  • 我有一项任务,阐述C代码(在x86上运行)的一些看似奇怪的行为。我可以很容易地完成其他一切,但这件事真的让我困惑。 代码段1输出

  • 问题内容: 为什么总是返回值0.0?我也想将其a格式化为00.00格式并转换为字符串吗? 问题答案: 因为转换为浮点数是在除法完成后发生的。你需要: 你应该可以使用以下格式进行格式化:

  • 问题内容: 使用SQL Server 2012: 产量 必须指定要从中选择的表 这正是我所期望的。 但有趣的是 返回1。 有人可以向我解释这里算什么吗? 编辑:并可能包括来源… 问题答案: SQL Server(在幕后)有效地将from应用于仅具有一行的虚拟表。因此,您将得到1作为计数。 会做同样的事情,例如,一次返回“ test”。 就像Oracle中的DUAL表,DB2中的SYSDUMMY1等

  • 问题内容: 这是故意的吗?我强烈记得以前的版本返回了吗?我该怎么办,有没有新的分公司运营商,或者我必须始终选拔? 问题答案: 更改除法运算符

  • 我通过这个简单的演示来再现这个问题: -o0编译并运行: