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":
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.