title: data.table roll="nearest" returns multiple results
body: <p>I'm attempting to use <code>data.table</code> to match the nearest decimal value in a vector but am running into a situation where more than one result is returned.  The simplified example below returns two values, <code>0.1818182 0.2727273</code>, but using a less precise value for <code>x</code> (e.g. <code>0.0275</code>) returns a single match (<code>0.1818182</code>).</p>
  
  <pre><code>x = 0.0275016249293408
  dt = data.table(rnk = c(0, 0.0909090909090909, 
                          0.181818181818182, 0.272727272727273),
                  val = c(0.0233775088495975, 0.0270831481152598, 
                          0.0275016216267234, 0.0275016249293408),
                  key="val")
  dt[J(x), roll="nearest"][, ifelse(is.na(val), NA_real_, rnk)]
  </code></pre>
  
  <p>I'm assuming the problem is related to the precision of the numeric values I'm using for this comparison.  Is there a limitation to the decimal precision that can be used for a nearest match (i.e. do I need to round the data points)?  Is there a better way to accomplish this nearest match?</p>