title: Function from Integers to the [0,1] float interval
body: <p>Given an integer I would like to produce a unique floating point number in the interval [0,1]. (this number will be used as id).
  The problem I found with all functions I have thought about, is that they encounter duplicates before running out of integer values.
  For example if <code>f(a:int):float =  0.a</code> then <code>f(16000) = 0.16</code> and <code>f(16001) = 0.16001</code>. But since it is floating point, <code>0.16</code> and <code>0.16001</code> may be represented the same.
  In other words, I need a function that produce not only unique numbers, but also numbers that are represented uniquely (at least forthe C++ integer domain).</p>
  
  <p>I know the answer is dependent on the size of integer and floating point in a specific environment, but if you can give an example for specific sizes it will still be helpful.</p>