Java에서 문자열을 이중으로 변환하는 방법
-
문자열을 Double로 변환하는
Double.parseDouble()
메서드 -
문자열을 Double로 변환하는
Double.valueOf()
메서드 -
문자열을 Double로 변환하는
DecimalFormat.parse
-
문자열 값을 Double 값으로 변환하는 동안
NumberFormatException
처리
우리는 이해하기 쉬운 예와 함께 Java에서 주어진 문자열을 더블로 변환하는 다양한 방법을 소개할 것이다.
문자열을 Double로 변환하는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);
}
}
출력:
Converted negative value: -12.34
Converted positive value: 12.34
문자열을 Double로 변환하는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
문자열을 Double로 변환하는DecimalFormat.parse
원하는 값이1,11,111.12d
와 같은 경우DecimalFormat
클래스를 사용하여 문자열을doubleValue()
로 구문 분석 할 수 있습니다.
그러나DecimalFormat
클래스는int
또는byte
와 같은 다른 값을 반환 할 수 있으므로try-catch
블록에서 모든 작업을 수행해야합니다. 그리고 doubleValue
를 원하므로double
유형을 확실히 얻기 위해doubleValue()
메소드를 사용해야합니다.
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
을 얻을 수 있습니다. 문자열 값이 유효한 double 값이 아니기 때문에 발생합니다.
더 명확하게하기 위해이 예외를 발생시키는 간단한 예제를 볼 것입니다.
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
이 유효한 double 값이 아니기 때문에 발생합니다. 이 오류에 대한 해결책은 아래 에서처럼 쉼표를 소수점으로 바꾸는 것입니다.
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에서 Double 비교
- 자바에서 더블
- Java에서 Long을 Double로 변환
- Java의 Float 및 Double 데이터 유형
- Java에서 Double을 문자열로 변환