При использовании toString()
Двойное добавление запятых (5143 напечатано как 5,143).
Как отключить запятые?
Как печатать Double без запятых
Ответ 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 получил так