2 つのオブジェクト間のミリ秒の差を計算すると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 の精度を参照してください。
ただし、それではこの動作を完全には説明できません。