groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Gilligan <s...@msgilligan.com>
Subject Math errors converting Long to BigDecimal
Date Thu, 10 Sep 2015 20:15:55 GMT
A one line assert which PASSES and shouldn't:

assert 100000000000000016 == (({ BigDecimal it -> it})(100000000000000010))


More detail (all asserts pass):

def val = 100000000000000010
assert val.class == Long
def closure = { BigDecimal it -> it}
def bdVal = closure(val)
assert bdVal.class == BigDecimal
assert bdVal == 100000000000000016
def bdCastVal = (BigDecimal) val
assert bdCastVal.class == BigDecimal
assert bdCastVal == 100000000000000010

So, converting to BigDecimal with a cast or with an `as` seems to work.
But having Groovy do it automatically for a function or closure
parameter fails.

Am I missing something? Is this a known issue?

Thanks,

Sean



Mime
View raw message