[
https://issues.apache.org/jira/browse/JEXL-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13806647#comment-13806647
]
Henri Biestro commented on JEXL-143:
------------------------------------
In this particular case, you could use a big-decimal literal:
9223372036854775806.5B (note the trailing 'B' for 'Big'- the doc is wrong, see
JEXL-141).
But in general terms, if what you want is to use big decimal and/or big
integers or taylor when coercions to integer/double occur, you may
derive/implement a new JexlArithmetic.
> Huge numbers are rounded
> -------------------------
>
> Key: JEXL-143
> URL: https://issues.apache.org/jira/browse/JEXL-143
> Project: Commons JEXL
> Issue Type: Improvement
> Affects Versions: 2.1.1
> Environment: Ubunu 12.04, android studio 0.2.10
> Reporter: Frank
>
> When calculating huge numbers, which are still in the long range the result
> is wrong (or getting rounded somehow), e.g.
> Expression e = jexl.createExpression("math:pow(2, 62)"); //also tried
> `pow(2.0, 62.0)` and pow(2L, 62L)`
> JexlContext context = new MapContext();
> String res = String.valueOf(e.evaluate(context));
> returns `4611686018427388000` but it should be `4611686018427387904`
--
This message was sent by Atlassian JIRA
(v6.1#6144)