Java 双师积极性
Java double division positiveness
为什么这个 java 代码会产生正无穷大?
double d = 10.0 / -0;
System.out.println(d);
if (d == Double.POSITIVE_INFINITY)
System.out.println("Positive Infinity");
else
System.out.println("Negative Infinity");
负零等于零。因此,
double d = 10.0 / -0;
等同于
double d = 10.0 / 0;
这是正无穷大。
另一方面,如果您有:
double d = 10.0 / -0.0;
你会得到负无穷大(因为现在第二个值是双精度值,它区分 positive/negative 零)。
虽然double
区分正零和负零,但int
不区分。因此,当您将值为 0 的 int
转换为 double
时,您总是得到“正零”。
-0
是一个 int
,它的值为 0。
除以“负零”得到负无穷大。为此,您需要将除数指定为 double
(而不是 int
):
double d = 10.0 / -0.0;
System.out.println(d);
if (d == Double.POSITIVE_INFINITY) {
System.out.println("Positive Infinity");
} else {
System.out.println("Different from Positive Infinity");
}
if (d == Double.NEGATIVE_INFINITY) {
System.out.println("Negative Infinity");
} else {
System.out.println("Different from Negative Infinity");
}
输出:
-Infinity
Different from Positive Infinity
Negative Infinity
这一输出是
double d = 10.0 / -0;
===>正无穷大
但是如果你需要得到 Negative Infinity 作为输出,你可以改变这个代码.....
double d = 10.0 / -0.0;
现在,您可以获得“负无穷大”作为输出。
原因 --->(数据类型。
首先你使用 double/int....
第二个选项是 double/double.......
)
为什么这个 java 代码会产生正无穷大?
double d = 10.0 / -0;
System.out.println(d);
if (d == Double.POSITIVE_INFINITY)
System.out.println("Positive Infinity");
else
System.out.println("Negative Infinity");
负零等于零。因此,
double d = 10.0 / -0;
等同于
double d = 10.0 / 0;
这是正无穷大。
另一方面,如果您有:
double d = 10.0 / -0.0;
你会得到负无穷大(因为现在第二个值是双精度值,它区分 positive/negative 零)。
虽然double
区分正零和负零,但int
不区分。因此,当您将值为 0 的 int
转换为 double
时,您总是得到“正零”。
-0
是一个 int
,它的值为 0。
除以“负零”得到负无穷大。为此,您需要将除数指定为 double
(而不是 int
):
double d = 10.0 / -0.0;
System.out.println(d);
if (d == Double.POSITIVE_INFINITY) {
System.out.println("Positive Infinity");
} else {
System.out.println("Different from Positive Infinity");
}
if (d == Double.NEGATIVE_INFINITY) {
System.out.println("Negative Infinity");
} else {
System.out.println("Different from Negative Infinity");
}
输出:
-Infinity Different from Positive Infinity Negative Infinity
这一输出是
double d = 10.0 / -0;
===>正无穷大
但是如果你需要得到 Negative Infinity 作为输出,你可以改变这个代码.....
double d = 10.0 / -0.0;
现在,您可以获得“负无穷大”作为输出。
原因 --->(数据类型。 首先你使用 double/int.... 第二个选项是 double/double....... )