Java JSpinner浮点输入是否可能?如何实现?

Java JSpinner浮点输入是否可能?如何实现?,java,swing,jspinner,Java,Swing,Jspinner,有可能让JSpinner处理浮动吗?我有像10E-20这样的花车,所以我不能用双打,必须是花车。。。但是没有处理浮点数的类SpinnerNumberModel…首先,我真的不明白为什么不能使用Double,但没问题 SpinnerNumberModel能够处理浮动,但您必须将它们作为Float对象来处理。有一个构造函数,它接受数字和可比较的对象 但请记住,float不能表示这么小的数字。为了获得如此高的精度,您应该使用BigDecimal类,它也是Number的子类()以下是Java的Numbe

有可能让JSpinner处理浮动吗?我有像10E-20这样的花车,所以我不能用双打,必须是花车。。。但是没有处理浮点数的类SpinnerNumberModel…

首先,我真的不明白为什么不能使用Double,但没问题

SpinnerNumberModel
能够处理浮动,但您必须将它们作为
Float
对象来处理。有一个构造函数,它接受
数字
可比较的
对象


但请记住,float不能表示这么小的数字。为了获得如此高的精度,您应该使用
BigDecimal
类,它也是
Number
的子类()

以下是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 value = new Float(50.28817271727);
Float step = new Float(5.29182);
SpinnerNumberModel model = new SpinnerNumberModel(value, null, null, step); 

编辑:添加了BigDecimal部分OK我真的不明白为什么我不能使用double,我也有类似的东西,但我不明白为什么它不起作用!谁告诉你只使用浮点数?