JEXL计算返回int而不是float:
JexlEngine jexl = new JexlEngine();
Expression e = jexl.createExpression("7/2");
Float result = (Float)e.evaluate(null);我收到这个错误:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Float我可以更改设置以返回浮点数吗?
发布于 2014-12-23 20:12:12
7/2表达式将计算为int结果,因此无法将整数强制转换为浮点数,如果要使其成为浮点数,则需要将表达式更改为7 / 2.0F。
发布于 2014-12-23 20:21:03
为了准确起见,您必须转换为浮动任何参数,因此使用这些(7 / 2F)或(7F / 2)中的任何一个。
但是,由于Java的自动取消装箱,您可以在初始代码中避免异常,但不幸的是,如果您使用
Float result = (float)e.evaluate(null);另一种可行的方法是将其转换为双倍,因此(7 / 2D)或(7D / 2)然后使用
Float result = e.evaluate(null).floatValue();https://stackoverflow.com/questions/27627190
复制相似问题