如何在 Java 中把字串轉換為雙數
-
Double.parseDouble()
將字串轉換為Double
的方法 -
Double.valueOf()
將字串轉換為 Double 的方法 -
DecimalFormat.parse
將一個字串轉換為雙數 -
將字串值轉換為雙精度值
Double
時處理NumberFormatException
的方法
我們將通過一些簡單易懂的例子介紹在 Java 中把給定的字串轉換為雙精度 Double
的不同方法。
Double.parseDouble()
將字串轉換為 Double
的方法
在 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);
}
}
輸出:
Converted negative value: -12.34
Converted positive value: 12.34
Double.valueOf()
將字串轉換為 Double 的方法
當我們需要一個 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
塊中進行所有操作。
但由於 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
將字串值轉換為雙精度值 Double
時處理 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 中將 Long 轉換為 Double
- Java 中的雙精度
- 在 Java 中比較雙精度數
- Java 中的浮點數和 Double 資料型別
- 在 Java 中將 Double 轉換為字串