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

  1. FEnetJava
  2. Javaコラム
  3. Java TIPS
  4. JavaでString型とBigDecimal型を変換する方法を解説

JavaでString型とBigDecimal型を変換する方法を解説

  • Java TIPS
公開日時:   更新日時:
JavaでString型とBigDecimal型を変換する方法を解説
この記事でわかること
    システム
    エンジニア
    JavaでString型とBigDecimal型はどのように変換するのでしょうか。
    プロジェクト
    マネージャー
    JavaのString型とBigDecimal型について解説しますので、一緒に学んでいきましょう。

    JavaでString型とBigDecimal型を変換する方法とは?


    今回は、JavaでString型とBigDecimal型を変換する方法を紹介します。

    Javaでは文字列を扱う型としてString型が、小数など細かな数値を扱う型としてBigDecimal型が用意されています。

    プログラムで小数桁を含む数値を扱う際は、10進数を2進数に変換する過程でどうしても誤差(=丸め誤差)が出てしまいますが、JavaではBigDecimal型で扱うことで極力誤差を少なくすることが可能です。

    そのため、String型で扱っている数値を四則演算等の計算で用いる場合、BigDecimal型に変換したうえで演算すると誤差の少ない計算結果が得られます。

    数値をString型、BigDecimal型で相互に型変換することで、コンソール出力したり、正しい計算結果を求めたりと、それぞれの型の利点を活かせたプログラムが作成できます。JavaでString型とBigDecimal型の変換に興味のある方はぜひご覧ください。

    JavaでString型とBigDecimal型を変換する方法


    Javaで、String型とBigDecimal型を変換する方法について説明する前に、それぞれの型の特徴について簡単に紹介します。

    String型とは「java.lang」パッケージに定義されている、主に文字列を扱う型です。同じく文字を扱う型にchar型がありますが、char型は1文字しか扱えないのに対し、String型では複数の文字を一つの変数で扱うことが可能です。Javaでは下記のように変数宣言します。



    文字をコンソールに出力したり、画面に表示したりする際に便利な型です。

    一方でBigDecimal型は「java.math」パッケージに定義されている、主に数値を扱う型です。

    Javaではdoubleやfloatという、小数を含む数値を扱う型が他にも用意されていますが、doubleやfloatでは計算時の丸め処理で誤差が生じてしまうため、数値計算する際は通常BigDecimal型を使います。Javaでは下記のように変数宣言します。



    コンストラクタの引数に指定する数値はダブルクォーテーションで囲みましょう。囲まないと数値がint型と見なされ、特に小数桁を扱う際に誤差が生じてしまいます。

    BigDecimal型からString型に変換する方法

    BigDecimal型からString型に変換する方法を紹介します。

    BigDecimal型からString型に変換するには、BigDecimal型で定義されているtoString()メソッドを使います。



    下記のサンプルは、BigDecimal型からString型へ変換するソースコードです。



    実行結果は次のようにコンソール出力されます。

    999
    999.999
    1E-7

    999、999.999は問題なく変換できましたが、0.0000001を変換したら「1E-7」と出力されました。このように、数値の桁によっては指数変換されることがあります。「0.0000001」と出力したい場合はtoPlainString()メソッドを使うようにしましょう。



    実行結果は次のようにコンソール出力されます。

    0.0000001

    String型からBigDecimal型に変換する方法

    続いて、String型からBigDecimal型に変換する方法について紹介します。

    下記のようにコンストラクタ宣言時に、引数に数値文字列を指定することでString型からBigDecimal型に変換できます。



    下記のサンプルは、数値文字列をBigDecimal型に変換するソースコードです。BigDecimal型に変換後、コンソール出力するためにString型へと再変換しています。



    実行結果は次のようにコンソール出力されます。

    999
    999.999

    小数桁を含む場合もBigDecimal型に変換できます。しかしカンマが付与された数値は変換時に例外エラーを引き起こすので注意しましょう。また、nullが指定されたString型の変数も変換時にNullPointerExceptionの例外エラーを引き起こしてしまいます。



    そこで文字列のカンマを事前に除去したり、nullは0に変換したりするよう、エラーを起こさないように工夫しましょう。



    実行結果は次のようにコンソール出力されます。

    999999999
    0

    システム
    エンジニア
    JavaのBigDecimal型からString型に変換、また反対にString型からBigDecimal型に変換する方法などが理解できました。
    プロジェクト
    マネージャー
    厳密な計算結果を求めるために便利なBigDecimal型とコンソールへの出力ができるString型をそれぞれ使い分けましょう。

    JavaでString型とBigDecimal型を変換してみよう!


    いかがだったでしょうか。JavaでString型とBigDecimal型を変換する方法について紹介しました。

    BigDecimal型からString型へ変換するには、BigDecimal型で定義されているtoString()メソッド、もしくはtoPlainString()メソッドを使います。一方でString型からBigDecimal型へ変換するには、BigDecimal型のインスタンス作成時、引数にString型の数値を指定することで可能です。

    Javaでは四則演算等で計算する際に、厳密な計算結果を求めるためBigDecimal型が便利です。また、コンソールへの出力時はString型が便利です。

    それぞれの型の利点を理解し、必要に応じて型変換できるようにしましょう。

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

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

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

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

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

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

    • 充実した研修制度

      充実した研修制度

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

    • 資格取得を応援

      資格取得を応援

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

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

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

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

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

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

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

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

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

    Java新着案件New Job