private static Pattern fpNumber = Pattern.compile("^[-]?\\d+[\\.]\\d+$");
private static Pattern intNumber = Pattern.compile("^[-]?\\d+$");
private static Pattern hexNumber = Pattern.compile("^0x[0-9A-Fa-f]+$");
etc...
And then match properties against the different patterns to figure out what it is. This is computationally a bit expensive, though. You could however do some sampling on the data; e.g. only run the matchers against the first N records and then assume the same type for the rest of the set.
Friso