【Java入門】基本型(int,long,double,float...)の使い方をしっかり学ぶ
  • facebookページ
  • twitterページ
  • 2019.11.28

    【Java入門】基本型(int,long,double,float…)の使い方をしっかり学ぶ

    プリミティブ型と参照型

    Javaのデータ型には大きく分類して、プリミティブ型と参照型があります。

    プリミティブ型は基本型とも呼び、次の8種類の型があります。

    分類
    真偽型 boolean
    整数型 byte, short, int, long
    浮動小数点型 float, double
    文字型 char

     

    参照型はクラス型とも言い、クラスのインスタンス(実態)を格納します。

    例えば、次のような自作クラスも参照型となり、そのクラスのインスタンスを格納する変数は、参照型の変数となります。

    この記事では、Javaのプリミティブ型(基本型)について詳しく解説していきます。

    プリミティブ型は、まさにJavaの基本になるため、しっかり覚えておきましょう。

    整数型

    整数型は、その名の通り整数値を扱う型です。Javaの整数型には、次の4つがあります。

    値の範囲
    byte -128~127
    short -32768~32767
    int -2147483648~2147483647
    long -9223372036854775808~9223372036854775807

     

    リテラルで整数型の値を書くときは、通常は10進表記で書きますが、接頭辞として0b、0、0xを付与すると、2進数、8進数、16進数表記でも書けます。

    例えば、整数の100をそれぞれの進数で表記すると、次のようになります。

    また、桁区切り文字として「_」を使用することもできます。

    リテラでの型

    リテラルで整数値を書く場合、特に何も指定しないとint型として扱われます。

    リテラルを、shortやlongとして扱う場合、末尾に型を指定する記号を付けます。

    浮動小数点型

    浮動小数点型は、小数を含む数値を扱うクラスです。Javaの浮動小数点型には次の2つがあります。

    値の範囲
    float -1.4E-45〜約340澗(かん)
    double -4.9E-324〜約1.7澗(かん)

     

    誤差には注意

    上の表の通り、floatは4バイト、doubleは8バイトの値の範囲を扱え、広い範囲の数値でも高速に計算がてきます。しかし、その速さとの引き換えに、計算結果に誤差が生まれることがあり、注意が必要です。

    次のサンプルコードは、double型の計算結果て、実際に誤差が生じる例です。

    上のコードでは、「0.1」をsum変数に10回足しています。結果は「1.0」になりそうですが、実際に実際に実行してみると、「0.99999…」のような結果となり、結果に誤差が発生します。

    コンピュータでは、数値を内部では2進数で扱っているため、2進数で表現できない小数(循環小数)の場合、適当な値に丸められ、その結果、上記のサンプルコードのような誤差が発生します。

    Java以外でも浮動小数点の誤差は発生する

    Javaの浮動小数点型は、国際標準規格に準拠している為、その他のプログラム言語でも、規約に準拠していれば、同じように誤差が発生します。Javaに限らす、浮動小数点型の計算する場合は、誤差については注意しましょう。

    文字型

    char型は、1つの文字を表すデータ型です。内部的にはunicodeて16ビットの整数(0~65535)として文字を表現します。

    charのリテラルは、シングルクォートで括って書くか、uxxxxの形式で文字コード指定で書くこともできます。

    Stringは基本データ型ではない

    皆さんは、文字をプログラムで扱うとき、charよりもStringをよく使うと思います。Stringはよく使うデータ型ですが、Javaではプリミティブ(基本)型ではなく、参照型に位置づけられています。

    真偽型(boolean)

    真偽型はtrueとfalseの2つ値を表現するデータ型です。trueとfalse以外の値は入りません。

    trueが「真」、falseが「偽」と覚えておいてください。

    真偽型(boolean)は、例えばチェックボックスのON/OFF状態などの値を格納するのに適したデータ型です。

    データ型の変換

    ある型から、別の型にデータ。変換することをキャストといいます。

    キャストをすれば、intをdouble型に変換するなど、別のプリミティブ型へデータを変換できます。

    構文

    キャストには、次の構文を使用します。

    例えば、int型の変数をdouble型に変換する場合は、次のように記述します。

    精度が落ちるキャストには注意

    キャストする際の注意として、キャスト前の型のデータ範囲より、キャスト後の基本型で扱えるデータ範囲の方が、小さいとエラーなるか、精度が保証されない変換結果になります。

    次のサンプルコードのような、doubleからfloatへのキャストはエラーになります。

    上のコードを実行すると、結果が「0」となり、意図しない結果になっていることが分かります。

    ▪️ 実行結果

    また、浮動小数点を整数型に変換するときも、精度が保証されず、意図しない結果になります。

    ▪️ 実行結果

    Javaでは、dobuleなどの浮動小数点型の値を、intなどの整数型にキャストすると、小数点が切り捨てられます。

    整数を除算するときの丸め込み

    整数の除算で、小数が生じるときは、結果がゼロに向かって丸められます。

    例えば、「5 / 2」をおこなえば、正しい答えは「2.5 」であるが、int型で除算すると、結果は丸められ「2」になります。

    これを正しく計算するには、int型の値を浮動小数点型のfloatまたはdoubleキャストした後、除算を行います。

    まとめ

    javaのプリミティブ型(基本型)について、解説してきました。それぞれのプリミティブ型は、箱のサイズ(格納できる値の範囲)が決められており、範囲を超える値を入れると、意図しない結果になります。

    事前に確認してから、適切な型を使用するようにしましょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE