Javaコラム Javaエンジニアのためのお役立ちコラム

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

2021年07月02日
SE
JavaでString型とBigDecimal型はどのように変換するのでしょうか。
PM
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

SE
JavaのBigDecimal型からString型に変換、また反対にString型からBigDecimal型に変換する方法などが理解できました。
PM
厳密な計算結果を求めるために便利なBigDecimal型とコンソールへの出力ができるString型をそれぞれ使い分けましょう。

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


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

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

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

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


Javaでのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

recommended

Categories

Tags