Check this out:
http://en.wikipedia.org/wiki/Floating_point
As opposed to a 16bit integer (a natural number, like 1, 2, 6, etc.), a floating point is not bound to have only 2^16 variations (65536 possible values). In general, only the precision and possible ‘range’ of displacement will change.
I personally dont think using a floating point value will prevent you from doing tweaks afterwards, since displacement is usually not object-scale, but world-scale dependant. For example in maya, you easily may check that by applying a displacement to a simple plane: the amount of displacement will always stay the same, regardless of what scale is being applied to Y (provided that Y is up and you keep readjusting the bounding box scale to avoid displacement clipping).
So, unless you find a conversion factor that matches up the difference in scale of the zbrush mesh and the mesh used in the rendering application, you are forced to tweak out the discrepancy, no matter what type of ‘input’ you use. I guess it’s quite some task to find this factor.
Greetings to Italy. I hope you enjoy.