이중 파싱에서 쉼표를 소수 구분 기호로 처리하는 방법
쉼표를 소수 구분 기호로 사용하면 표준 Double.valueOf() 메서드. 다음 코드를 고려해보세요.
String p = "1,234"; Double d = Double.valueOf(p); System.out.println(d);
이 코드는 쉼표로 인해 NumberFormatException을 발생시킵니다. 이 문제를 처리하려면 p = p.replaceAll(",", ".") 대체 기술을 사용하는 것이 좋습니다. 그러나 java.text.NumberFormat 클래스를 사용하는 더 효율적이고 지역화된 접근 방식이 있습니다.
NumberFormat을 사용한 솔루션
NumberFormat 클래스를 사용하면 다음과 같이 숫자를 구문 분석할 수 있습니다. 다양한 소수 구분 기호 처리를 포함하여 특정 로케일 설정에 적용됩니다. 이를 사용하여 쉼표 구분 기호로 double을 구문 분석하는 방법은 다음과 같습니다.
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue();
이 코드에서 NumberFormat.getInstance(Locale.FRANCE)는 프랑스어 로케일을 사용하여 NumberFormat 클래스의 인스턴스를 생성합니다. 일반적으로 소수 구분 기호로 사용됩니다. 그런 다음 format.parse() 메서드는 문자열을 Number 개체로 구문 분석합니다. 이 개체는 doubleValue() 메서드를 사용하여 double로 변환될 수 있습니다.
다국어 지원
다국어 애플리케이션의 경우 Locale.getDefault() 메서드를 사용하여 사용자의 기본 로케일을 얻을 수 있습니다. system:
NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
이 접근 방식을 사용하면 코드가 사용자가 선호하는 로캘에 맞게 조정되고 이에 따라 소수 구분 기호를 처리할 수 있습니다.
위 내용은 Java에서 쉼표를 소수 구분 기호로 사용하여 Double을 올바르게 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!