相关疑难解决方法(0)

为什么将Double.NaN转换为int不会在Java中抛出异常?

所以我知道IEEE 754为非实数的值指定了一些特殊的浮点值.在Java中,铸造这些值的原始int不会抛出异常像我本来期望.相反,我们有以下内容:

int n;
n = (int)Double.NaN; // n == 0
n = (int)Double.POSITIVE_INFINITY; // n == Integer.MAX_VALUE
n = (int)Double.NEGATIVE_INFINITY; // n == Integer.MIN_VALUE
Run Code Online (Sandbox Code Playgroud)

在这些情况下抛出异常的理由是什么?这是IEEE标准,还是仅仅是Java设计者的选择?如果这种演员阵容有例外情况,我是否会发现不良后果?

java floating-point casting ieee-754

18
推荐指数
2
解决办法
6578
查看次数

标签 统计

casting ×1

floating-point ×1

ieee-754 ×1

java ×1