お客様のサイトに問題があり、2 つの日付フィールド (開始日と終了日/時刻、秒単位の精度) を含む CSV ファイルをインポートしています。インポート コードは、2 つの日付の差を として計算し、データベースに (フィールドに)TimeSpan
保存します。TotalSeconds
real
私たちの開発環境では完全に動作しますが、何らかの理由で、お客様のサイトでは、時差によって計算にわずかな誤差が生じ、DB では 123 秒の時差が 123.0001 秒または 122.9999 秒として頻繁に表示されます。 . ここで問題を再現することはできません。
何年も前に、Pentium プロセッサで奇妙な浮動小数点計算エラー (5.0001-ium プロセッサと呼ばれる) が発生するという問題があったことを思い出しますが、詳細は思い出せません。特定の種類のプロセッサによって日付/時刻の計算が台無しになるという同様の問題が顧客サイトにある可能性はありますか? この奇妙な振る舞いについて、他に考えられる理由はありますか?
コードはとてもシンプルです。余分な部分を編集しましたが、次のようになります。
DateTime startDate, endDate;
// set startdate and enddate by parsing from CSV file
var timeDiff = endDate.Subtract(startDate);
// and we save to the database using timeDiff.TotalSeconds