在计算两个DateTime
对象之间的毫秒差时,我似乎总是得到一个返回的数字,其中数字的小数部分与数字的整数部分相同。例如:1235.1235
为什么会这样?难道我做错了什么?这是语言的怪癖还是DateTime
粒度的限制或其他什么?
这可以使用以下代码进行演示:
DateTime then = DateTime.Now;
Thread.Sleep(1234);
DateTime now = DateTime.Now;
TimeSpan taken = now - then;
string result = taken.TotalMilliseconds.ToString(CultureInfo.InvariantCulture);
//result = "1235.1235"
正如 CodesInChaos 评论的那样:
DateTime` 不准确到此精度级别:请参阅C# DateTime.Now 精度
但是 - 这并不能完全解释这种行为。