我们在客户网站上遇到问题,我们正在导入包含两个日期字段的CSV文件(开始和结束日期/时间,精确到秒)。导入代码计算两个日期之间的差异为TimeSpan
,然后我们将TotalSeconds
保存到数据库(在real
字段中)。
在我们的开发环境中完美运行 - 但由于某种原因,在客户现场,时间差异在计算中产生一些小数误差,因此在数据库中经常显示123秒的时差为123.0001秒,或122.9999秒。我们不能在这里重现这个问题。
我记得多年前奔腾处理器存在一些问题,他们正在制造奇怪的浮点计算错误(这样他们的昵称是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
答案 0 :(得分:0)
在将数字放入数据库之前将数字舍入为整数。