«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как безопасно анализировать двойные числа с запятой в качестве десятичного разделителя в Java?

Как безопасно анализировать двойные числа с запятой в качестве десятичного разделителя в Java?

Опубликовано 22 декабря 2024 г.
Просматривать:307

How to Safely Parse Doubles with Comma as Decimal Separator in Java?

Как эффективно анализировать число 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