title: DateTime.AddMilliSeconds doesn't seem to work
body: <p>I've got a simple function to take an <code>int</code> representing GPS week, and a double representing GPS seconds. The <code>GPS Week</code> is the number of weeks since midnight on 6th January 1980, and the  <code>GPS seconds</code> are the number of seconds since the last GPS week started. I want to turn these into a string with a particular format so that I can match GPS data with data from another instrument.</p>
  
  <p>My function is as follows:</p>
  
  <pre><code>private DateTime GetFromGps(int weeknumber, double seconds)
      {
          DateTime datum = new DateTime(1980, 1, 6, 0, 0, 0);
          DateTime week = datum.AddDays(weeknumber * 7);
          DateTime time = week.AddSeconds(Math.Floor(seconds));
          double millisecs = (seconds - Math.Floor(seconds)) * 1000;
          Console.WriteLine("{0}, {1}, {2}", seconds, Math.Floor(seconds), (int)millisecs);
          time.AddMilliseconds((int)millisecs);
          Console.WriteLine(time.ToString("yyyy.MM.dd,HH:mm:ss.fff"));
          return time;
      }
  </code></pre>
  
  <p>Now when <code>weeknumber = 1254</code> and <code>seconds = 412250.000</code> I get correct output of:</p>
  
  <pre><code>412250, 412250, 0
  2004.01.22,18:30:50.000
  </code></pre>
  
  <p>However, when I use <code>weeknumber = 1254</code> and <code>seconds = 412250.123</code> the output looks like this:</p>
  
  <pre><code>412250.123, 412250, 123
  2004.01.22,18:30:50.000
  </code></pre>
  
  <p>I've also tried without casting milliseconds to <code>int</code> and still had the same problem. I'd really appreciate any help with this.</p>