JSpinner浮点输入可能吗?怎么样?

时间:2015-12-08 14:02:52

标签: java swing jspinner

是否有可能让JSpinner处理浮动?我有像10E-20那样的花车,所以我不能使用双打,它必须是花车...但是没有类SpinnerNumberModel可以处理花车......

2 个答案:

答案 0 :(得分:1)

首先,我不明白为什么你不能使用双打,但是好的。

SpinnerNumberModel能够处理浮点数,但你必须将它们作为Float个对象。有this构造函数,它接受NumberComparable个对象。

但请记住,浮动不能代表那么小的数字。要获得如此高的精度,您应该使用BigDecimal类,它也是Number的子类。(Javadoc BigDecimal

答案 1 :(得分:1)

以下是Java NumberIntegerDoubleFloat的工作方式。

java.lang.Number是超级java.lang.Integerjava.lang.Double以及java.lang.Float,....

SpinnerNumberModel类具有以下构造函数

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

我完全没有理由不提供Float代替Number,因为FloatNumber的子类型。 Float是引用类型,而不是原始的float。

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