目次> 第7章> 7.3 TOPUPPREVNEXT

7.3 特別な値

基本データ型 double および float に対して ラッパークラス Double と Float が用意されています。 文字列から数値に変換する parseDouble や parseFloat、 文字列に変換する toString と いったメソッドの他に、以下のような定数が含まれます。

定数意味
MAX_VALUE正の最大値
MIN_VALUE正の最小値
NaN非数。∞+(-∞)、0×∞、0/0、∞/∞、負の平方根 などの計算で発生
NEGATIVE_INFINITY 負の無限大。負の数をゼロで割った場合など
POSITIVE_INFINITY 正の無限大。

Javaでは、整数( int )の計算時にゼロで割ると、 例外 ArithmeticException が発生します。
一方、浮動小数点( double や float )の計算時にゼロで割ると、例外は発生せず 値が、正の無限大 ( Double.POSITIVE_INFINITY や Float.POSITIVE_INFINITY ) か 負の無限大 ( 同じく NEGATIVE_INFINITY ) になります。
無限大に数値を加減しても、無限大のままです。 NaN ( Not a Number ) に対して数値を加減乗除しても、NaN のままです。 無限大そのものは、 NaN ではありません。

7.1節のプログラム Compute3.java で、ゼロによる除算をしないように 判定している部分を変更し、常に割り算の結果を表示するようにしてみましょう。

プログラム Compute3n.java

実行結果
page-7-4-2.gif

(1) 0 ÷ 0
page-7-4-3.gif

(2) 1 ÷ 0
page-7-4-4.gif

(3) -0.000000001 ÷ 0
page-7-4-5.gif

正の数や、負の数をゼロで割った結果と、POSITIVE_INFINITY や NEGATIVE_INFINITY との大小関係を確認するプログラムを作成しました。プログラムと結果を比較してください。

浮動小数点ゼロ除算のプログラム例 CompFloat3.java

実行結果
CompFloat3-1.gif


更新日:2012/04/02 TOPUPPREVNEXT