This is a guess, but what seems to be happening is that:
The number has to be a java.math.BigDecimal, in this case due to being sourced from the database
When it gets to the cfswitch the BigDecimal gets converted to a string
The string is then compared to the cfcase values
This worked previously because the BigDecimal would first get converted to a Double, then checked against a long, and because Double(2.00) == Long(2), the string produced is the string version of the long value, resulting in β2β being the cfswitch comparison.
Due to the change, the BigDecimal now skips the comparison and the string equivilant is β2.00β which is not equal to the string β2β.
That must have taken some serious debugging to track down. It is possible to add a precision to the property, e.g. with dbPrecision=8,0, but itβs hard to say if that would translate to a different type in Lucee.