Java字符串转双精度浮点数的全面教程与实用技巧
Java 中可以通过多种方式将字符串转换为双精度浮点数。今天我们将介绍一些常见的方法,将 Java 字符串转换为双精度原始数据类型或 Double 对象。请注意,由于 Java 支持自动装箱,双精度原始类型和 Double 对象可以互相替换,没有任何问题。
Double d1 = 10.25d;
//autoboxing from double to Double
double d = Double.valueOf(10.25);
//unboxing from Double to double
Java将字符串转换为双精度浮点数

-
- Double.parseDouble()
-
- 我们可以使用parseDouble()方法将字符串解析为double类型。字符串可以以“-”开头表示负数或以“+”开头表示正数。另外,双精度值中的尾随0将被删除。我们还可以使用“d”作为标识符来表示字符串是一个double类型的值。该方法返回双精度基本类型。下面的代码片段展示了如何使用Double.parseDouble()方法将字符串转换为double类型。
-
- String str = “+123.4500d”;
-
- double d = Double.parseDouble(str); // 返回双精度基本类型
-
- System.out.println(d); //-123.45,尾随0被删除
System.out.println(Double.parseDouble(“123.45001”)); //123.45001
System.out.println(Double.parseDouble(“123.45001d”)); //123.45001
System.out.println(Double.parseDouble(“123.45000”)); //123.45
System.out.println(Double.parseDouble(“123.45001D”)); //123.45001
Double.valueOf()
这个方法的工作方式与parseDouble()方法几乎相似,只是它返回Double对象。让我们看看如何使用这个方法将字符串转换为Double对象。
String str = “123.45”;
Double d = Double.valueOf(str); // 返回Double对象
System.out.println(d); //123.45
System.out.println(Double.valueOf(“123.45d”)); //123.45
System.out.println(Double.valueOf(“123.4500d”)); //123.45
System.out.println(Double.valueOf(“123.45D”)); //123.45
new Double(String s)
我们还可以通过其构造函数将字符串转换为Double对象。如果我们想要双精度基本类型,那么我们可以在它上面使用doubleValue()方法。注意,这个构造函数已经在Java 9中被弃用了,推荐使用parseDouble()或valueOf()方法。
String str = “98.7”;
double d = new Double(str).doubleValue(); // 构造函数在Java 9中被弃用
System.out.println(d); //98.7
DecimalFormat parse()
这个方法对于解析格式化的字符串为double很有用。例如,如果字符串是“1,11,111.23d”,我们可以使用DecimalFormat将该字符串解析为double类型:
String str = “1,11,111.23d”;
try {
double l = DecimalFormat.getNumberInstance().parse(str).doubleValue();
System.out.println(l); //111111.23
} catch (ParseException e) {
e.printStackTrace();
}
注意,parse()方法返回Number的实例,因此我们调用doubleValue()来从中获取双精度基本类型。如果字符串格式不正确,该方法将抛出ParseException。
这就是关于在Java程序中将字符串转换为double的所有内容。参考:Double API文档。