JDO specification 2.2 page 222 "Table 8: Default jdbc-type" has specified Java float should be mapped to JDBC FLOAT by default. DataNucleus maps Java float to DB2 "FLOAT"/DOUBLE by default which should have been DB2 REAL which is the JDBC FLOAT for DB2. Tell me about it, DB2 shouldn't have named DOUBLE "FLOAT":

http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0008469.html
Single-precision floating-point (REAL)

A single-precision floating-point number is a 32-bit approximation of a real number. The number can be zero or can range from -3.4028234663852886e+38 to -1.1754943508222875e-38, or from 1.1754943508222875e-38 to 3.4028234663852886e+38.

Double-precision floating-point (DOUBLE or FLOAT)

A double-precision floating-point number is a 64-bit approximation of a real number. The number can be zero or can range from -1.7976931348623158e+308 to -2.2250738585072014e-308, or from 2.2250738585072014e-308 to 1.7976931348623158e+308.

~~NUCRDBMS-205~~