DateTime 加法方法精度更改

在 .NET 6 及更早版本中,DateTime 加法方法的值参数舍入为最接近的毫秒。 在 .NET 7 及更高版本中,使用的是值参数的完整 Double 精度。 但是,由于浮点数学固有的不精确性,得到的精度将有所不同。

旧行为

以前,DateTimeAdd* 方法的 double 值参数(例如 DateTime.AddDays(Double))舍入为最接近的毫秒。

新行为

从 .NET 7 开始,使用的是 double 值参数的完整精度,从而提高受影响的方法的精度。

引入的版本

.NET 7

中断性变更的类型

此更改为行为更改

更改原因

做出此更改是为了响应社区的请求,以提高 DateTime 的精度。

除非有依赖于 Add* 方法的精度的代码,否则不采取任何特定操作。 在这种情况下,请查看代码并对其进行重新测试,以避免任何意外的精度更改。

受影响的 API