title: Python: Returning Floats Incorrectly
body: <p>I have a Python function as follows:</p>
  
  <pre class="lang-py prettyprint-override"><code>def point_double((xp,yp)):
      s = (3.0 * pow(xp,2) - 1)/(2.0*yp) # s = 2.6
      xr = pow(s,2) - (2 * xp) # xr = 0.76
      yr = s * (xp - xr) - yp # yr = 0.824
  
      return (xr,yr)
  </code></pre>
  
  <p>When I call <code>point_double((3,5))</code> I get a return value of <code>(0.7600000000000007, 0.8239999999999981)</code> rather than the correct value of <code>(0.76,0.824)</code> </p>
  
  <p>Adding <code>print xr, yr</code> just before the return line prints the desired result, but changing that to <code>print (xr,yr)</code> prints the incorrect value</p>
  
  <p>Can someone explain to me why this happens, and also help me overcome this so that the function returns the desired value</p>