쉼표를 소수 구분 기호로 사용하여 Double을 효과적으로 구문 분석하는 방법
문제:
문자열 값 "1,234"와 같이 쉼표를 구분 기호로 사용하여 십진수를 표현하면 다음을 사용하여 구문 분석할 때 NumberFormatException이 발생할 수 있습니다. Double.valueOf().
제안된 솔루션:
p = p.replaceAll(",", ".")을 사용하여 쉼표를 마침표로 바꾸는 것이 유효한 접근 방식입니다. , 그러나 더 강력한 방법이 있습니다.
Java의 NumberFormat for Decimal 구문 분석:
로케일별 구분 기호를 사용하여 소수를 처리하기 위해 Java는 NumberFormat을 제공합니다. 다음 코드를 고려하십시오.
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue();
다국어 애플리케이션 업데이트:
다국어 애플리케이션에서는 로캘별 소수 구분 기호가 중요합니다. 이를 지원하려면 NumberFormat.getInstance(Locale.getDefault())를 사용하여 현재 로케일의 형식을 가져옵니다.
NumberFormat의 장점:
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3