Okapi Project

double 型(だぶる がた)

バージョン
2003 年 07 月 12日 Ver.1.0
作成者
T.Hirata ( Xware )

目的

double 型の値をプログラムで保持したい。

double 型ってなに?

基本データ型の「浮動小数点型」に分類されるものの1つで、64bit の単精度浮動小数値を変数に格納します。

double 型の説明

double 型は浮動小数値を含むデータを扱います。

double 型のデータ型
データ型 サイズ 値の範囲
double 8byte ±4.9e-324〜±1.7976931348623157e+308 ※

※e-324 は 10 の -324 乗、e+308 は 10 の 308 乗を表します。

Java ソース中での浮動小数点リテラルは double 型の値となります。

無限小数のような実数は有限のbit 数で正確に値を表すことができないため、double 型でこのような値を保持する場合には 64bit の精度での近似値として表されます。

double 型では実数以外にも以下の特殊な値を扱うことができます。

特殊な浮動小数点値
意味 対応するリテラル

発生例

Double.MAX_VALUE 表現可能な最大値 3.4028235e38 double a=4.9E-324
Double.MIN_VALUE 表現可能な最小値 1.4e-45 double a=1.7976931348623157E308
Double.POSITIVE_INFINITY 正の無限大 Infinity double a=1/0d
Double.NEGATIVE_INFINITY 負の無限大 -Infinity double a=-1/0d
Double.NaN 非数(Not a Number) NaN double a=0/0d

特殊な浮動小数点値は標準の範囲外となる演算を行った場合に返されます。

double 型の使い方

データ型に double 型を指定し、変数名を宣言して使います。

 double 変数名 ( = 初期値 );
変数名
変数名を指定します。
初期値
変数の初期値を指定します。

浮動小数点のリテラルには指数を意味する "e"(または "E")を使用することができます。

この場合、数字に続いて "e"を入力して、その後ろに最初の数字に乗じる 10 の累乗を指定します。

double a = 0.1234e2d;      // 0.1234×10^2 である 12.34 が格納される
double b = 10e-4d;         // 10×10^-4 である 0.0010 が格納される
double c = 2.99792458e8d;  // 光速 2.99792458×10^8

ポイント

ヒント

特殊な浮動小数点値である NaN は NaN を含む他の値と直接比較を行うことができません。

double a = Double.NaN;  //NaN値の格納
if ( a == Double.NaN ){
    System.out.println("この値は非数(NaN)です。");
}else{
    System.out.println("この値は非数(NaN)ではありません。");
}

この処理結果は以下のようになります。

この値は非数(NaN)ではありません。

NaN は直接比較を行うことができず、この判定方法では常に false のルートを通ります。

そのため、NaN の判定をおこなう場合は特別なメソッドを使って判定を行います。

double a = Double.NaN;  //NaN値の格納
if ( Double.isNaN( a ) ){
    System.out.println("この値は非数(NaN)です。");
}else{
    System.out.println("この値は非数(NaN)ではありません。");
}

この処理結果は以下のようになります。

この値は非数(NaN)です。

isNaN メソッドを使うことにより NaN を判定することができます

関連


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.