title: Stata seemingly not actually rounding with round()
body: <p>Stata has a <code>round()</code> function. One can select the units it rounds to. I want to round an arbitrary floating point value to two decimal places using <code>round(ArbitraryValue, 0.01)</code>. Stata's <code>display</code> seems to understand this. But somehow the internal representation of <code>round(ArbitraryValue, 0.01)</code> still has the unrounded floating point value:</p>
  
  <pre><code>. local LevelA = 99.98765432123321
  
  . ttest mpg==20, level(`LevelA') &lt;BR&gt;
  level() can have at most two digits after the decimal point &lt;BR&gt;
  r(198);
  
  . local LevelB = round(`LevelA',0.01)
  
  . di `LevelB' &lt;BR&gt;
  99.99
  
  . ttest mpg==20, level(`LevelB') &lt;BR&gt;
  level() must be between 10 and 99.99 inclusive &lt;BR&gt;
  r(198);
  
  . set trace on
  
  . ttest mpg==20, level(`LevelB') &lt;BR&gt;
  
  [SNIP]&lt;BR&gt;
   = local 0 mpg = 20, level(**99.99000000000001**) &lt;BR&gt;
  [SNIP] &lt;BR&gt;
  r(198);
  </code></pre>
  
  <p>What am I not understanding about how to correctly round?</p>