Out of curiosity, in your code, you really do verbatim (Bigdecimal)1.9D or 1.9.D as BigDecimal? Or is the number value passed as a parameter? Because, you know that 1.9 is actually a BigDecimal already in Groovy, right?
Guillaume On Fri, Jan 8, 2016 at 1:15 PM, Alberto Vilches <[email protected]> wrote: > Hi everybody! We have an issue in our application, and we realized these two > lines have differents results. We wonder why because we think it should > calls to the DefaultGroovyMethods.asType(Number self, Class<T> c). But it > seems only the explicit call to "as" finally calls to the asType and the > casting do a different thing (just a new BigDecimal(1.9D), but we wonder in > which part of Groovy is happening) > > (BigDecimal)1.9D // "1.899999999999999911182158029987476766109466552734375" > -> > 1.9D as BigDecimal // "1.9" > > In fact, we tried to put these two lines in the Groovy console and see the > AST in all the phases. But in all of them shows the same code: > > public java.lang.Object run() { > ((1.9) as java.math.BigDecimal) > return ((1.9) as java.math.BigDecimal) > } > > Somebody please could give some light? Thank you very much and happy new > year :) > > -- > Un saludo. > Alberto Vilches -- Guillaume Laforge Apache Groovy committer & PMC member Product Ninja & Advocate at Restlet Blog: http://glaforge.appspot.com/ Social: @glaforge / Google+
