title: Why can't I get a p-value smaller than 2.2e-16?
body: <p>I've found this issue with t-tests and chi-squared in R but I assume this issue applies generally to other tests. If I do: </p>
  
  <pre><code>a &lt;- 1:10
  b &lt;- 100:110
  t.test(a,b) 
  </code></pre>
  
  <p>I get: <code>t = -64.6472, df = 18.998, p-value &lt; 2.2e-16</code>. I know from the comments that <code>2.2e-16</code> is the value of <code>.Machine$double.eps</code> - the smallest floating point number such that <code>1 + x != 1</code>, but of course R can represent numbers much smaller than that. I know also from the R FAQ that R has to round floats to 53 binary digits accuracy: <a href="http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f" rel="noreferrer">R FAQ</a>.  </p>
  
  <p>A few questions: (1) am I correct in reading that as 53 binary digits of <em>precision</em> or are values in R <code>&lt; .Machine$double.eps</code> not calculated accurately? (2) Why, when doing such calculations does R not provide a means to display a smaller value for the p-value, even with some loss of precision? (3) Is there a way to display a smaller p-value, even if I lose some precision?  For a single test 2 decimal significant figures would be fine, for values I am going to Bonferroni correct I'll need more. When I say "lose some precision" I think &lt; 53 binary digits, but (4) am I completely mistaken and any p-value <code>&lt; .Machine$double.eps</code> is wildly inaccurate? (5) Is R just being honest and other stats packages are not?</p>
  
  <p>In my field very small p-values are the norm, some examples:  <a href="http://www.ncbi.nlm.nih.gov/pubmed/20154341" rel="noreferrer">http://www.ncbi.nlm.nih.gov/pubmed/20154341</a>, <a href="http://www.plosgenetics.org/article/info%3Adoi%2F10.1371%2Fjournal.pgen.1002215" rel="noreferrer">http://www.plosgenetics.org/article/info%3Adoi%2F10.1371%2Fjournal.pgen.1002215</a> and this is why I want to represent such small p-values. </p>
  
  <p>Thanks for your help, sorry for such a tortuous question.</p>