【Java】String型からdouble型に変換する方法(parseDouble()メソッド)について解説

parseDouble()メソッドは、Javaの組み込みメソッドであり、
指定されたStringによって表される値に初期化された新しいdoubleを返します。
文字列は、負の数を示す「-」または正の数を示す「+」で始めることができ、後続の0はdouble値から削除されます。
そして、文字列がdouble値であることを示す識別子として「d」を使用することもでき、
このメソッドは、doubleプリミティブ型を返します。

parseDouble()の宣言の仕方

まず、String型にdouble型に変換したい文字列を変数に格納します。

double型である変数を定義し,parseDouble()メソッドを使って
String型からDouble型へ変換します。

しかし、double型へ変換できなかった場合は次に説明する2つの例外をスローします。
・NullPointerException: 解析された文字列がnullの場合
・NumberFormatException: 解析された文字列が解析可能な浮動小数点を含まない場合
たとえば、文字列が「122.20ab」の場合、このメソッドはNumberFormatExceptionをスローします。
次の例では、parse()メソッドを使ってString型の変数をからDate型へ変換してみましょう。

出力結果

95.0
0.05
10003.89

s1は95が格納されており、parseDouble()によってdouble型の95.0に変更されます。
s2は0.05が格納されており、parseDouble()によってdouble型の0.05に変更されます。
s3は+10003.890dが格納されており、+によって正の数だと示し、dによって文字列が
double値であることを示すため、parseDouble()によってdouble型の10003.89に変更されます。

例外の処理を実装してみる

先ほども言いましたが、double型へ変換できなかった場合は2つの例外へスローされます。
実際に例外になるのか実装してみましょう。
まずは、NumberFormatExceptionを表示させてみましょう。
String型の値を”AAA”にしてみます。

出力結果

Exception in thread “main” java.lang.NumberFormatException: For input string: “AAA”
at エラー箇所

double型へ変換したいString型の変数が数字の文字列ではないので変換できないことから
NumberFormatExceptionへスローしました。

続いてNullPointerExceptionを表示させてみましょう。
String型の値をnullにしてみます。

出力結果

Exception in thread “main” java.lang.NullPointerException
at エラー箇所

double型へ変換したいString型の変数がnullなので
NullPointerExceptionへスローしました。

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報