Vinod Kunnakkattil:
私を混乱以下のコードの出力。なぜ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浮動小数点標準、..ゼロによる除算を含むすべての浮動小数点演算が、あることを指定し、明確に定義された結果を有します。標準ゼロ符号付き支持体、ならびに無限大とはNaN(非数)。+0(正のゼロ)及び-O(負のゼロ)と、この2つのゼロがあり除去する任意の曖昧割ます。
ルール:
IEEE 754算術演算において、
a ÷ +0
ある正の無限大の場合a
であり、正、負の無限大の場合a
であるネガ、およびNaNの場合a = ±0.