「こんにちは、アミーゴ!」
「今日は Java の興味深いことについてお話します。」
「無限大」
Java では、double型には、正の無限大と負の無限大の特別な値があります。正の数を 0.0 で割ると正の無限大が得られ、負の数は負の無限大になります。
これらの概念は、特別な Double 定数によって表されます。
コード | 説明 |
---|---|
|
正の無限大 |
|
負の無限大 |
「それで、本当に効果があるの?」
「はい。これを見てください。」
コード
double inf = Double.POSITIVE_INFINITY;
System.out.println(inf); // Infinity
System.out.println(inf + 1); // Infinity+1 == Infinity
System.out.println(inf + 10); // Infinity+10 == Infinity
System.out.println(inf * -1); // Equal to negative infinity
Double.NEGATIVE_INFINITY
画面出力:
Infinity
Infinity
Infinity
-Infinity
「それは本当にうまくいきます。そして、曖昧さがある場合は? たとえば、無限から無限を引く場合はどうでしょうか?」
「このために、Java には Not-a-Number ( NaN ) という別の概念があります。」
「いろいろな場面で使われます。」
1) 文字列は数値に変換されていますが、文字が含まれています。結果は NaN になります。
2)無限大から無限大を引いたもの。結果は NaN になります。
3)数値を期待しているにもかかわらず、未定義の結果が得られる他の多くの状況。
「それでは、Infinity と NaN を使用してどのような操作を実行できるのでしょうか?」
「NaN を使用すると、非常に簡単です。NaN を含む演算はすべて NaN になります。」
「そして、無限大を使用すると、次のことができます。」
表現 | 結果 |
---|---|
|
0 |
|
±無限大 |
|
±無限大 |
|
無限大 |
|
NaN |
|
NaN |
|
NaN |
|
NaN |
「それは当然ですね。ありがとう、リシ」
GO TO FULL VERSION