Table of Contents
ToggleJava Convert String to Double
將 String 轉換為 double 或 Double 是 Java 中常見的操作,可以使用 parseDouble 、 valueOf 等方法進行操作, Java String Double 任務是將該字串轉換為雙精度浮點數,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- conversion
| +- string
| +- StringToDoubleTest.java
單元測試
Java String to Double 提供字串轉換成雙精度浮點數等操作。
parseDouble
Java String to Double 使用 Double.parseDouble 轉換成雙精度浮點數,此方法接受另一個參數來更改基數,例如 16(十六進制)或 2(二進制)。
@Test
public void parseDouble() {
String value = "460.88";
double result = Double.parseDouble(value);
System.out.println(result);
assertEquals(460.88, result, 0);
value = "-50.88";
result = Double.parseDouble(value);
System.out.println(result);
assertEquals(-50.88, result, 0);
}
460.88
-50.88
parseDoubleThrowException
Java String to Double 使用 Double.parseDouble 轉換成雙精度浮點數,輸入不合格式的字串,會拋出例外。
@Test(expected = NumberFormatException.class)
public void parseDoubleThrowException() {
String value = "460.88";
double result = Double.parseDouble(value);
System.out.println(result);
assertEquals(460.88, result, 0);
value = "bash-460.88";
result = Double.parseDouble(value);
System.out.println(result);
}
460.88
java.lang.NumberFormatException: For input string: "bash-460.88"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at org.ruoxue.java_147.string.StringToDoubleTest.parseDoubleThrowException(StringToDoubleTest.java:30)
valueOf
Java String to Double 使用 Double.valueOf 轉換成雙精度浮點數。
@Test
public void valueOf() {
String value = "460.88";
Double result = Double.valueOf(value);
System.out.println(result);
assertEquals(460.88, result.doubleValue(), 0);
value = "-50.88";
result = Double.valueOf(value);
System.out.println(result);
assertEquals(-50.88, result.doubleValue(), 0);
}
460.88
-50.88
valueOfThrowException
Convert String to Double in Java 使用 Double.valueOf 轉換成雙精度浮點數,輸入不合格式的字串,會拋出例外。
@Test(expected = NumberFormatException.class)
public void valueOfThrowException() {
String value = "460.88";
Double result = Double.valueOf(value);
System.out.println(result);
assertEquals(460.88, result.doubleValue(), 0);
value = "bash-460.88";
result = Double.valueOf(value);
System.out.println(result);
}
460.88
java.lang.NumberFormatException: For input string: "bash-460.88"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at java.lang.Double.valueOf(Double.java:502)
at org.ruoxue.java_147.string.StringToDoubleTest.valueOfThrowException(StringToDoubleTest.java:55)
StringToDoubleTest.java
Convert String to Double in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.conversion.string;
import static org.junit.Assert.*;
import org.junit.Test;
public class StringToDoubleTest {
@Test
public void parseDouble() {
String value = "460.88";
double result = Double.parseDouble(value);
System.out.println(result);
assertEquals(460.88, result, 0);
value = "-50.88";
result = Double.parseDouble(value);
System.out.println(result);
assertEquals(-50.88, result, 0);
}
@Test(expected = NumberFormatException.class)
public void parseDoubleThrowException() {
String value = "460.88";
double result = Double.parseDouble(value);
System.out.println(result);
assertEquals(460.88, result, 0);
value = "bash-460.88";
result = Double.parseDouble(value);
System.out.println(result);
}
@Test
public void valueOf() {
String value = "460.88";
Double result = Double.valueOf(value);
System.out.println(result);
assertEquals(460.88, result.doubleValue(), 0);
value = "-50.88";
result = Double.valueOf(value);
System.out.println(result);
assertEquals(-50.88, result.doubleValue(), 0);
}
@Test
public void valueOfThrowException() {
String value = "460.88";
Double result = Double.valueOf(value);
System.out.println(result);
assertEquals(460.88, result.doubleValue(), 0);
value = "bash-460.88";
result = Double.valueOf(value);
System.out.println(result);
}
}
心得分享
String to Double in Java 轉換方法 parseDouble 和 valueOf 似乎完全相同,分別傳回基本型別 double 及物件 Double , valueOf 方法在內部委託給 parseDouble 方法, Convert String to Double in Java 提供將 String 實例轉換為 double 或 Double 實例的多種方法。