Ответ 1
Отключите группировку, вызвав setGroupingUsed
:
df.setGroupingUsed(false);
DecimalFormat
использует ','
как разделитель разделителей по умолчанию.
Каков правильный способ сказать DecimalFormat, что нам не нужен символ разделителя группировки? В настоящее время я использую symbol.setGroupingSeparator('\ 0'), и, похоже, он работает, но выглядит уродливо.
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
symbols.setGroupingSeparator('\0');
DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(symbols);
ParsePosition pp = new ParsePosition(0);
Number result = df.parse("44,000.0", pp); // this should fail, as I don't want any grouping separatator char.
if (pp.getIndex() != input.length())
throw new Exception("invalid number: " + input, 0);
Каков правильный способ сказать DecimalFormat, что нам не нужен разделитель групп char?
Отключите группировку, вызвав setGroupingUsed
:
df.setGroupingUsed(false);
Вы можете использовать метод setGroupingUsed()
, но это не приведет к тому, что формат отклонит число, он просто прекратит разбор на первый разделитель. Число разбор с форматами будет игнорировать все после первого недопустимого символа.