При использовании toString() Double добавляет запятые (5143 печатается как 5,143). Как отключить запятые?
toString()
Ваша проблема принадлежит локали, как правильно указал Рорик. Тем не менее, вам следует изучить класс DecimalFormat на случай, если изменение языкового стандарта означает испортить все.
Посмотрите на NumberFormat класс, чтобы иметь дело с разделителем тысяч. Потому что, похоже, ваш случай касается разделителя тысяч.
Это удалит все группировки (в вашем случае запятые).
DecimalFormat df = new DecimalFormat(); df.setGroupingUsed(false);
Насколько я знаю, вы не можете отключить то, что возвращает метод toString().
Мое решение будет следующим:
someDouble.toString().replaceAll(",", "");
Не самое элегантное решение, но оно работает.
Java имеет отличную поддержку форматирования чисел в тексте в разных локалях с классом NumberFormat :
С текущей локалью:
NumberFormat.getNumberInstance().format(5000000);
получит вам (со шведским языком) строку: 5 000 000
... или с определенной локалью (например, французской, что также приводит к 5 000 000 ):
NumberFormat.getNumberInstance(Locale.FRANCE).format(5000000);
myDouble.toString().replaceAll(",", "");
Три способа:
Использование DecimalFormat
DecimalFormat
DecimalFormat df = new DecimalFormat(); DecimalFormatSymbols dfs = df.getDecimalFormatSymbols(); dfs.setGroupingSeparator(Character.MAX_VALUE); df.setDecimalFormatSymbols(dfs); System.out.println(df.format(doubleVar));
(как предлагают другие) просто замените запятую в строке, которую вы получите
Возможно, вам придется изменить настройки локали. По умолчанию он берется из языкового стандарта системы, но вы можете переопределить это. Прочитайте javadoc на Locale class и этот маленький учебник , чтобы начать. Локаль можно указать через командную строку:
java -Duser.language=en -Duser.region=US MyApplication
Формат NumberFormat = NumberFormat.getInstance ();
format.setGroupingUsed (ложь);
Я использую этот метод для форматирования двойного в строку с фиксированной локалью, без группировки и с минимальное и максимальное количество дробных цифр
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; }
Double result= 5143.0; Sysout(result.toString())
дает мне 5143.0... можете ли вы поставить код, для которого у вас есть так
5143.0...