title: Floating point division vs integer division gives different answer
body: <p>I had some issues with a piece of code and ended up doing the following command line snippet.This was just an experiment and I didn't store such large values in any variable in the real code(modulo 10**9 +7).</p>
  
  <pre><code>&gt;&gt;&gt; a=1
  &gt;&gt;&gt; for i in range(1,101):
  ...     a=a*i
  ...
  &gt;&gt;&gt; b=1
  &gt;&gt;&gt; for i in range(1,51):
  ...     b=b*i
  ...
  &gt;&gt;&gt; c=pow(2,50)
  &gt;&gt;&gt; a//(b*c)
  2725392139750729502980713245400918633290796330545803413734328823443106201171875
  &gt;&gt;&gt; a/(b*c)
  2.7253921397507295e+78
  &gt;&gt;&gt; (a//(b*c))%(10**9 +7)
  196932377
  &gt;&gt;&gt; (a/(b*c))%(10**9 +7)
  45708938.0
  &gt;&gt;&gt;
  </code></pre>
  
  <p>I don't understand why integer divison gives the correct output while floating point divison fails.</p>
  
  <p>Basically I calculated: <code>(  (100!)  /  ((50!)*(2^50))  ) % (10**9 +7)</code></p>