If a DOUBLE column is returned in the result set then getScale() returns 0.
If a DOUBLE expression is returned and the expression is the result of a DOUBLE combined with a DECIMAL then it seems the scale from the decimal sometimes affects the result set metadata.
E.g. DECIMAL(10,2) - DOUBLE returns a DOUBLE with getScale() returning 2.
See the test output for jdbcapi/metadata.java
double – precision: 15 scale: 0 display size: 22 type name: DOUBLE
double precision - dec(10,2) – precision: 15 scale: 0 display size: 22 type name: DOUBLE
dec(10,2) - double precision – precision: 15 scale: 2 display size: 22 type name: DOUBLE
First line is a DOUBLE column, second is DOUBLE - DECIMAL, third is DECIMAL - DOUBLE
I assume the scale should always be zero for a DOUBLE, as it holds no meaning, but I can't see any proof of that in JDBC spec, javadoc or tutorial book.