When performing an insert using and tags with valueNumeric, we are experiencing various decimal number becoming “inaccurate” with what appears to be typical double issues when creating them from strings.
The database being run against is a Sybase ASE 15 database and the insert consists of;
where DECIMALFIELD is DECIMAL(38,22) and NUMERICFIELD is NUMERIC(38,22) in the table DECIMALTABLE.
Looking at the code in Liquibase, it appears that these valueNumeric values will end up being converted into a Double, which is not guaranteed to be accurate, and in our case is not. BigDecimal gets around this problem, but of course the parsing of these valueNumeric values does not use BigDecimal.
To work around this I have had to add a update DECIMALTABLE set NUMERICFIELD=100000000000.1234578, DECIMALFIELD=10000000000.12 where PRIKEY=1, which sets to values in the database correctly. But it would be nice if valueNumeric did correctly parse and set the values accurrately from the tag.