Как эффективно анализировать число Double с запятой в качестве десятичного разделителя
Проблема:
Строковые значения представление десятичных чисел с запятыми в качестве разделителей, например «1234», может вызвать исключение NumberFormatException при анализе с использованием Double.valueOf().
Предлагаемое решение:
Замена запятых точками с использованием p = p.replaceAll(",", ".") является допустимым подходом , но есть более надежный метод.
Java NumberFormat для десятичных чисел Синтаксический анализ:
Для обработки десятичных дробей с помощью разделителей, зависящих от локали, 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