Java에서 문자열을 이중으로 변환하는 방법

Rupam Yadav 2023년10월12일
  1. 문자열을 Double로 변환하는Double.parseDouble()메서드
  2. 문자열을 Double로 변환하는Double.valueOf()메서드
  3. 문자열을 Double로 변환하는DecimalFormat.parse
  4. 문자열 값을 Double 값으로 변환하는 동안NumberFormatException 처리
Java에서 문자열을 이중으로 변환하는 방법

우리는 이해하기 쉬운 예와 함께 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 Yadav
Rupam Yadav avatar Rupam Yadav avatar

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 String