Как печатать Double без запятых

При использовании toString() Двойное добавление запятых (5143 напечатано как 5,143). Как отключить запятые?

Ответ 1

Ваша проблема принадлежит Locale, как правильно указал Рорик. Однако вы должны изучить класс DecimalFormat, в случае изменения Locale означает испортить все вещи.

Посмотрите NumberFormat класс, чтобы иметь дело с разделителем тысяч. Потому что кажется, что ваш случай относится к тысячам разделителей.

Ответ 2

myDouble.toString().replaceAll(",", "");

Ответ 3

Насколько мне известно, вы не можете отключить метод toString().

Мое решение было бы следующим:

someDouble.toString().replaceAll(",", "");

Не самое элегантное решение, но оно работает.

Ответ 4

Java имеет отличную поддержку для форматирования чисел в тексте в разных локалях с помощью NumberFormat class:

С текущей локалью:

NumberFormat.getNumberInstance().format(5000000);

доставит вам (со шведским языком) строку: 5 000 000

... или с определенной локалью (например, французский, что также приводит к 5 000 000):

NumberFormat.getNumberInstance(Locale.FRANCE).format(5000000);

Ответ 5

Возможно, вам нужно изменить настройки локали. Он берется по умолчанию из системного языка, но вы можете переопределить это. Прочитайте javadoc в Locale class, и этот маленький учебник для начала. Локаль можно указать через командную строку:

java -Duser.language=en -Duser.region=US MyApplication

Ответ 6

Три способа:

  • Используя DecimalFormat

    DecimalFormat df = new DecimalFormat();
    DecimalFormatSymbols dfs = df.getDecimalFormatSymbols();
    dfs.setGroupingSeparator(Character.MAX_VALUE);
    df.setDecimalFormatSymbols(dfs);
    System.out.println(df.format(doubleVar));
    
  • (как было предложено другими) просто замените запятую в строке, которую вы получаете

  • Установить языковой стандарт при загрузке вашей виртуальной машины

Ответ 7

Это приведет к удалению всей группировки (в ваших запятых).

DecimalFormat df = new DecimalFormat();
df.setGroupingUsed(false);

Ответ 8

Я использую этот метод для форматирования двойной строки с фиксированной локалью, без группировки и с минимальная и максимальная цифры цифр

public String formatNumber(double number){
    NumberFormat nf = NumberFormat.getInstance(new Locale("en", "EN"));
    nf.setMaximumFractionDigits(3);  
    nf.setMinimumFractionDigits(1);
    nf.setGroupingUsed(false);
    String str = nf.format(number);
    return str;       
 }

Ответ 9

Формат NumberFormat = NumberFormat.getInstance();

format.setGroupingUsed(ложь);

Ответ 10

Double result= 5143.0;

Sysout(result.toString()) 

дает мне 5143.0... может ли поставить код, для которого u получил так