JFormattedTextField и BigDecimals

1
private JFormattedTextField floatingText = new JFormattedTextField();

DecimalFormat df = new DecimalFormat();
NumberFormatter dnff = new NumberFormatter(df);
DefaultFormatterFactory factory = new DefaultFormatterFactory(dnff);
floatingText.setFormatterFactory(factory);

Он отлично работает, когда я ввожу небольшие числа, такие как 1,23, но когда я вхожу в BigDecimals, например, 9.99999999, он округляет его до 10. Что я могу сделать, чтобы Formatter мог принимать BigDecimal?

Теги:
jtextfield
bigdecimal

1 ответ

2
Лучший ответ

Вы можете изменить минимальные и максимальные цифры для отображения с помощью методов на DecimalFormat. Так:

DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(20);

Есть и другие методы, чтобы играть со слишком.

  • 0
    Я установил максимальное значение 16, но когда оно превышает максимальное, оно округляется снова, как я могу сделать так, чтобы он не принимал какие-либо входные данные больше 16 цифр?
  • 1
    ну ладно, это немного сложнее. Вы можете использовать DocumentFilter для этого. См. Stackoverflow.com/questions/12793030/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню