Java: форматирование с плавающей запятой зависит от локали [дубликат]

Отражение позволяет Вам делать это. Также можно хотеть посмотреть Сериализация XML .

Type type = blah.GetType();
PropertyInfo prop = type.GetProperty("prop1");
prop.SetValue(blah, "foo", null);

27
задан Martijn Courteaux 4 November 2014 в 11:36
поделиться

2 ответа

Попробуйте использовать String.format(Locale.US, "%f", floatValue) просто для установки локали, используемой во время форматирования.

47
ответ дан 28 November 2019 в 04:42
поделиться

Может быть полезно взглянуть на http://download.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html , который содержит ряд параметров для точного вывода строк, где необходимо использовать Locale

DecimalFormat - это конкретный подкласс NumberFormat, который форматирует десятичные числа. Он имеет множество функций, предназначенных для анализа и форматирования чисел в любой локали, включая поддержку западных, арабских и индийских цифр. Он также поддерживает различные виды чисел, включая целые числа (123), числа с фиксированной запятой (123.4), научную запись (1.23E4), проценты (12%) и суммы в валюте (123 доллара). Все они могут быть локализованы.

Часто бывает полезно направить ввод и вывод через специальные процедуры. Вот один из библиотеки JAMA (http://math.nist.gov/javanumerics/jama/)

   public void print (PrintWriter output, int w, int d) {
      DecimalFormat format = new DecimalFormat();
      format.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.US));
      format.setMinimumIntegerDigits(1);
      format.setMaximumFractionDigits(d);
      format.setMinimumFractionDigits(d);
      format.setGroupingUsed(false);
      print(output,format,w+2);
   }

Используя это, вы можете быть уверены, что будущие проблемы и улучшения, вероятно, будут решены

7
ответ дан 28 November 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: