2015-12-08 3 views
0

Возможно ли, что JSpinner имеет дело с поплавками? У меня есть поплавки, такие как 10E-20, поэтому я не могу использовать Doubles, он должен быть плавающим ... но нет класса SpinnerNumberModel, который имеет дело с поплавками ...Возможна ли поплавка ввода JSpinner? Как?

ответ

1

Прежде всего я не очень понять, почему вы не можете использовать парные, но хорошо.

SpinnerNumberModel способен иметь дело с поплавками, но вы должны передать их как Float объектов. Существует this конструктор, который принимает Number и Comparable объектов.

Но помните, что поплавок не может представлять эти небольшие числа. Для такой высокой точности следует использовать BigDecimal класс, который также является подклассом Number. (Javadoc BigDecimal)

+0

Edit: добавлена ​​часть BigDecimal – Tobias

+0

хорошо, я действительно не понимаю, почему я не могу использовать двойников либо у меня есть что-то вроде этого, но я не понимаю, почему он не работает! – Lydia

+0

, который говорит вам использовать только поплавки? – Tobias

1

Вот как в Java Number, Integer, Double, Float работы.

java.lang.Number супер тип java.lang.Integer, java.lang.Double а также java.lang.Float, ....

SpinnerNumberModel класс имеет следующий конструктор

public SpinnerNumberModel(Number value, 
        Comparable minimum, 
        Comparable maximum, 
        Number stepSize) 

Я не вижу абсолютно никаких причин, почему мы не можем поставить Float вместо от Number с Float является подтипом Number. Float, который является ссылочным типом, а не float, который является примитивным.

Float value = new Float(50.28817271727); 
Float step = new Float(5.29182); 
SpinnerNumberModel model = new SpinnerNumberModel(value, null, null, step); 
+0

спасибо! получил это =) – Lydia