Google検索エンジン

トップページ » Javaキャスト入門 » intとBigDecimalの型変換


intとBigDecimalの型変換 - 数値の基本型とBigDecimal型のキャスト -

  • intとBigDecimalについて

    BigDecimalは変更が不可能な、任意精度の符号付き10進数を扱う型(クラス)です。 オーバーフローしたり精度を失うことなく、様々な計算を行うことが可能なので、通貨の計算などに適しています。 また、プログラマが丸め動作(四捨五入など)を完全に制御できるので、小数点以下の値を丸めたりする際に便利です。


    int型(数値を扱う基本型)とBigDecimal型のキャスト

    intやdoubleなど数値を扱う基本型は、以下のサンプルプログラムと同じ方法でキャストすることができます。 BigDecimal型のデータ領域は、基本的にdouble型と同等です。 基本型を型変換する際の規則と同様に、基本型とBigDecimal型のキャストにおいても、領域の縮小にあたる型変換はできません。 以下にサンプルコードを掲載していますので、動作を確認してみてください。


    数値を扱う基本型からBigDecimal型への変換

    以下のサンプルプログラムでは、数値を扱う基本型(int、long、double)からBigDecimal型へ変換しています。 BigDecimalクラスを使用するには、サンプルプログラムの様に「import java.math.BigDecimal;」と記述してimport宣言を記述する必要があります。

    サンプルソースコード
    import java.math.BigDecimal;
    class sample {
       public static void main(String args[]) {
          int num1 = 111;
          long num2 = 222;
          double num3 = 333.33;
    
          BigDecimal big1 = BigDecimal.valueOf( num1 );
          BigDecimal big2 = BigDecimal.valueOf( num2 );
          BigDecimal big3 = BigDecimal.valueOf( num3 );
    
          System.out.println("キャスト後:" + big1 );
          System.out.println("キャスト後:" + big2 );
          System.out.println("キャスト後:" + big3 );
       }
    }
    

    BigDecimal型から数値を扱う基本型への変換

    以下のサンプルプログラムでは、BigDecimal型から数値を扱う基本型へ変換しています。 BigDecimal型の領域は、基本的にdouble型と同等と考えてください。

    サンプルソースコード
    import java.math.BigDecimal;
    class sample {
       public static void main(String args[]) {
          BigDecimal big1 = new BigDecimal("111");
          BigDecimal big2 = new BigDecimal("222");
          BigDecimal big3 = new BigDecimal("333.33");
    
          int num1 = big1.intValue();
          long num2 = big2.longValue();
          double num3 = big3.doubleValue();
    
          System.out.println("キャスト後:" + num1 );
          System.out.println("キャスト後:" + num2 );
          System.out.println("キャスト後:" + num3 );
       }
    }
    

    double型からBigDecimal型への変換と丸め

    以下のサンプルプログラムでは、double型からBigDecimalへ変換しています。 正確には、double型の領域と値を確保したBigDecimalオブジェクトを新規作成しています。 サンプルソースのように、BigDecimalクラスの「setScale」を記述することで、小数点以下の値を丸めることができます。

    サンプルソースコード
    import java.math.BigDecimal;
    class sample {
       public static void main(String args[]) {
          double num1 = 777.77;
    
          BigDecimal big1 = new BigDecimal(num1);
          BigDecimal big2 = new BigDecimal(num1).setScale(
                                2, BigDecimal.ROUND_HALF_DOWN );
    
          System.out.println("キャスト後:" + big1 );
          System.out.println("キャスト後:" + big2 );
       }
    }
    

    次ページでは、String型とBigDecimal型のキャストについて説明します。



Javaキャスト入門
it-manual.comのウェブサイト
書籍の紹介
  • Java ポケットリファレンス
    Java ポケットリファレンス
    発売:2011/03/25
    定価:2,709円
    著者:高江 賢
    出版:技術評論社
    内容:ベーシックだけど忘れてしまいがちな情報をコンパクトなサイズに凝縮し、「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」特徴で現場に欠かせない1冊です。
  • プログラマが知るべき97のこと
    プログラマが知るべき97のこと
    発売:2010/12/18
    定価:1,995円
    著者:和田 卓人
    出版:オライリージャパン
    内容:世界中で活躍するプログラマによる97本のエッセイを収録した書籍です。プログラミングにおいてもっとも重要な事柄は何か、バージョン管理やテスティング、設計原則とコーディングテクニック、また腕を磨くための勉強法などについて、経験豊かなプログラマが自らの体験を踏まえて解説します。
  • Effective Java 第2版 (The Java Series)
    Effective Java
    発売:2008/11/27
    定価:3,780円
    著者:Joshua Bloch他
    出版:ピアソンエデュケーション
    内容:著者のGoogle, Sun Microsystemsにおけるソフトウェア開発で得た知識・経験をまとめています。Javaプログラミングをする全てのSE必読の書籍です。
  • プログラミング言語Java (The Java Series)
    プログラミング言語Java
    発売:2007/04
    定価:4,410円
    著者:ケン・アーノルド他
    出版:ピアソンエデュケーション
    内容:Javaの原典と呼べる本です。変数、コメント、定数、制御、クラス、配列、文字列、例外処理までわずか30ページで進むので、Javaを学習し始めたばかりの方には少し難しいかもしれません。厚さの割に価格も手ごろなので、Java使いなら本棚に置いておきたい本です。