Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java入門
  4. Javaのdouble型とは?float型とdouble型の形式・値の範囲や型変換

Javaのdouble型とは?float型とdouble型の形式・値の範囲や型変換

  • Java入門
公開日時:   更新日時:
Javaのdouble型とは?float型とdouble型の形式・値の範囲や型変換
この記事でわかること
    システム
    エンジニア
    Javaのdoubleとはどのような型でしょうか。
    プロジェクト
    マネージャー
    基本の数値型の中で最も広い範囲の数を表せるのがdouble型です。

    Javaの数値型の種類


    Javaの基本型のうち、数値を表す型には、整数を扱うbyte、short、int、longと、実数を扱うfloat、doubleがあります。

    それぞれの型は、何バイトで保持するかというサイズが決まっていて、サイズによって表現可能な値の範囲が決まります。各型のサイズと値の範囲を次の表にまとめました。

    値の種類 バイト数 値の範囲
    byte 整数 1 -128~127
    short 整数 2 -32768~32767
    int 整数 4 -2147483648~2147483647
    long 整数 8 -9223372036854775808~9223372036854775807
    float 実数 4 約±3.4×(10の38乗)~約±1.4×(10の-45乗)
    double 実数 8 約±1.8×(10の308乗)~約±4.9×(10の-324乗)

    Javaのdouble型とは?

    基本の数値型の中で最も広い範囲の数を表せるのがdouble型です。double型は8バイトの浮動小数点形式で表現されます。以下では、Javaのdouble型について詳しく説明していきます。

    浮動小数点型とは?

    浮動小数点型は、数値を仮数部と指数部に分けた表現形式です。

    例えば、1234の値を持つ大きさの異なる数値は、次のように表せます。

    ここで、1.234の部分が仮数部、指数部は10のべき数を表し、それぞれ9、1、-3となります。このような形式により、限られたビット数で、0に近い値から大きな値まで、広い範囲を表現できます。

    float型とdouble型の形式

    Javaのfloat型とdouble型は、IEEE754という国際規格の形式を用いています。floatは単精度、doubleは倍精度浮動小数点と呼ばれます。

    32ビット(4バイト)のfloat型では、符号が1ビット、指数が8ビット、仮数が23ビットです。64ビット(8バイト)のdouble型は、符号が1ビット、指数が11ビット、仮数が52ビットです。

    double型の最大値と最小値を表す定数

    Javaでdouble型の範囲を表す定数は、DoubleクラスのMAX_VALUEとMIN_VALUEです。

    これらを表示するJavaプログラムの例を示します。

    実行結果は次のようになります。

    ここでMIN_VALUEは負の最小値ではなく、最も0に近い正の数を表しています。負の値の範囲は、-MAX_VALUE~-MIN_VALUEとなります。

    小数の表示形式を指定する方法

    double型変数の値を出力するとき、桁数を指定するためにStringクラスのformatメソッドを利用できます。書式%fは、double型の値を10進数として表示します。小数点以下はデフォルトで6桁です。%.4fのようにピリオドの後に桁数を指定できます。

    書式%eは、double型の値を指数表示で示します。この場合も、%.4eのように小数点以下の桁数を指定できます。

    formatメソッドを使ったJavaコード例を示します。

    実行結果は次のようになりました。最終桁は、四捨五入された値となります。

    doubleとintの型変換

    Javaの異なる数値型間の型変換では、変換後の型が変換前の型より大きい場合には、暗黙的な型変換が行われます。基本数値型の中でdouble型は最も広範囲の値を扱えるため、他の型からdoubleへの変換では暗黙的な型変換が行われます。

    int型とdouble型の代入

    int型の値をdouble型に代入する場合、暗黙的な型変換が行われるので、型変換を記述する必要はありません。double型の値をint型に代入する場合には、明示的なキャスト必要です。

    次のJavaコード例を用いて説明します。

    実行結果は次のようになります。

    double型をint型に代入するために、”(int)d” のように、型変換を指定しています。これを書かない場合には、コンパイルエラーが発生します。小数点以下の値は、変換時に切り捨てられます。int型変数aをdouble型変数dへ代入する際には、型変換の記述は不要です。

    演算オペランドの型変換

    整数オペランドの演算結果を小数で得たい場合があります。主な例は、整数同士の割り算を行う場合です。

    次のJavaコード例を用いて説明します。

    実行結果は次のようになります。

    [1]では、int同士の除算が実行されて、66という結果が得られます。これを代入によりdouble型に変換するので、結果は66.0になります。[2]と[3]は、一方のオペランドがdouble型のため、doubleの除算が行われ、結果を小数値で得られます。

    システム
    エンジニア
    float型とdouble型の形式や値の範囲や型変換の方法がよく理解できました。
    プロジェクト
    マネージャー
    doubleは基本の数値型の中で最も広い範囲の値を扱う型なので、使い方を覚えておきましょう。

    Javaのdouble型を使いこなそう

    Javaの浮動小数点型doubleについて、値の範囲や表示形式、intとの型変換について説明しました。doubleは基本の数値型の中で、最も広い範囲の値を扱う型です。

    数値計算を行うプログラムで、整数型の範囲におさまらない大きな数を扱う場合や、小数値を扱う場合に、double型が役立ちます。値の範囲や桁数を意識しながら、数値計算を試してみて下さい。

    FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Java新着案件New Job