Java で文字列をダブルに変換する方法
-
文字列をダブルに変換する
Double.parseDouble()
メソッド -
Double.valueOf()
文字列をダブルに変換するメソッド -
文字列をダブルに変換するには
DecimalFormat.parse
を使用する -
文字列の値をダブル値に変換する際の
NumberFormatException
の処理
Java で与えられた文字列をダブルに変換する様々な方法を、わかりやすい例を交えて紹介します。
文字列をダブルに変換する Double.parseDouble()
メソッド
Java で文字列を double にキャストする最も簡単で最良の方法は、クラス Double
の静的メソッド parseDouble
を用いることです。
Double.parseDouble
はプリミティブ型を返します。
public class Main {
public static void main(String[] args) {
String stringValue = "12.34";
double doubleValue = Double.parseDouble(stringValue);
System.out.println("Converted value: " + doubleValue);
}
}
出力:
Converted value: 12.34
このメソッドは文字列を正しく double
にパースします。
public class Main {
public static void main(String[] args) {
String stringValueNegative = "-12.34";
String stringValuePositive = "+12.34";
double doubleValueNegative = Double.parseDouble(stringValueNegative);
double doubleValuePositive = Double.parseDouble(stringValuePositive);
System.out.println("Converted negative value: " + doubleValueNegative);
System.out.println("Converted positive value: " + doubleValuePositive);
}
}
このメソッドは文字列を正しく解析して double
に変換します。
Converted negative value : -12.34 Converted positive value : 12.34
Double.valueOf()
文字列をダブルに変換するメソッド
プリミティブ型の double の代わりに Double
オブジェクトが必要な場合、Double.valueOf
メソッドを用いて文字列から double オブジェクトの値を取得することができます。
public class Main {
public static void main(String[] args) {
String stringValueNegative = "-12.08d";
String stringValuePositive = "+12.3400";
Double doubleValueNegative = Double.valueOf(stringValueNegative);
Double doubleValuePositive = Double.valueOf(stringValuePositive);
System.out.println(doubleValueNegative);
System.out.println(doubleValuePositive);
}
}
出力:
-12.08
12.34
文字列をダブルに変換するには DecimalFormat.parse
を使用する
欲しい値が 1,11,111.12d
のようなものであれば、DecimalFormat
クラスを使って文字列を解析して doubleValue()
にすることができます。
しかし、DecimalFormat
クラスは int
や byte
のような異なる値を返すことができるので、try-catch
ブロックですべての操作を行う必要があります。また、doubleValue が欲しい場合は doubleValue()
メソッドを用いて double
型を確定的に取得しなければならません。
import java.text.DecimalFormat;
import java.text.ParseException;
public class Main {
public static void main(String[] args) {
String stringValue = "1,11,111.12d";
try {
double doubleValue = DecimalFormat.getNumberInstance().parse(stringValue).doubleValue();
System.out.println(doubleValue);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
出力:
111111.12
文字列の値をダブル値に変換する際の NumberFormatException
の処理
ときどき NumberFormatException
が発生することがあります。これは文字列の値が有効な二重値ではないために発生します。
より明確にするために、この例外をスローする簡単な例を見てみましょう。
public class Main {
public static void main(String[] args) {}
String stringValue = "1,11";
double d = Double.parseDouble(stringValue);
System.out.println(d);
}
}
出力:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1,11"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:543)
at com.company.Main.main(Main.java:14)
この例外は 1,11
が有効な二重値ではないために発生します。このエラーを解決するには、以下のようにカンマを小数点に置き換える必要があります。
public class Main {
public static void main(String[] args) {
String stringValue = "1,11";
double d = Double.parseDouble(stringValue.replace(",", "."));
System.out.println(d);
}
}
出力:
1.11
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn関連記事 - Java Double
- Java で Int を Double に変換する
- Java で Doubles を比較する
- Java でのダブル
- Java で long を double に変換する
- Java の浮動小数点および倍精度データ型
- Java で Double を文字列に変換する