title: Is int->double->int guaranteed to be value-preserving?
body: <p>If I have an <code>int</code>, convert it to a <code>double</code>, then convert the <code>double</code> back to an <code>int</code>, am I guaranteed to get the same value back that I started with?  In other words, given this function:</p>
  
  <pre><code>int passThroughDouble(int input)
  {
    double d = input;
    return d;
  }
  </code></pre>
  
  <p>Am I guaranteed that <code>passThroughDouble(x) == x</code> for all <code>int</code>s <code>x</code>?</p>