Thanks for the response and time for checking into it. I think you are on to it saying that the JDBC driver should be selecting BigDecimal. I am connecting using CF9's standard MySQL 4/5 driver, which I think does use JDBC, and maybe there was a miscommunication between docs and actual programming. It seems like this would be a very unusual oversight though since you would think this issue would come up frequently.
-Brian On Aug 12, 11:54 pm, "Peter J. Farrell" <[email protected]> wrote: > Brian H. said the following on 08/12/2010 10:27 PM:> Notice the > 4.54747350886E-013. It appears that cold-fusion is doing > > floating point subtraction in this case. I can't believe that in all > > my years of CF, I've never ran into this issue. I tried using JavaCast > > to Double and BigDouble around all my operands, but no cake. In the > > end, I wrapped the operation in PrecisionEvaluate(...) and I get the > > correct results. Apparently it uses the Java BigDecimal type. > > We use Java BigInteger for calculating future timestamps (in ms -- Unix > epoch) in the caching layer because the scientific notation issue. > > > Two things that confuse me. Why did casting as BigDouble not n solve > > this problem.Why did coldfusion chose "float" as the type, since the > > MySQL type was NOT float, it was Decimal(10,2). I did a GetMetaData() > > on the query, and the numeric columns have "TypeName" = "DECIMAL" as > > they should. > > MySQL datatypes and the underlying datatype the your CFML uses may not > exactly one to one compatible. There is not "numeric" datatype in Java > (which ultimately will be the decider) and so it appears CF used the > Java primitive "float" as the Java type. This however is wrong > according to the conversion chart for the JDBC driver -- stating the > "decimal" in MySQL should be "BigDecimial" in Java: > > http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-con... > > Base on a couple of comments on Ben Nadel's blog, it looks like the > behavior changed to this in CF8+. Could be that they switched the > official MySQL driver in that release. It's hard to tell what's going > on because CF is a closed source product. > > .pjf -- You received this message because you are subscribed to Mach-II for CFML list. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/mach-ii-for-coldfusion?hl=en ***New URLs as of April 29th, 2010*** SVN: http://svn.mach-ii.com/machii/ Wiki / Documentation / Tickets: http://trac.mach-ii.com/machii/
