DateTime 加法方法精度更改
在 .NET 6 及更早版本中,DateTime
加法方法的值参数舍入为最接近的毫秒。 在 .NET 7 及更高版本中,使用的是值参数的完整 Double 精度。 但是,由于浮点数学固有的不精确性,得到的精度将有所不同。
旧行为
以前,DateTimeAdd*
方法的 double
值参数(例如 DateTime.AddDays(Double))舍入为最接近的毫秒。
新行为
从 .NET 7 开始,使用的是 double
值参数的完整精度,从而提高受影响的方法的精度。
引入的版本
.NET 7
中断性变更的类型
此更改为行为更改。
更改原因
做出此更改是为了响应社区的请求,以提高 DateTime 的精度。
建议的操作
除非有依赖于 Add*
方法的精度的代码,否则不采取任何特定操作。 在这种情况下,请查看代码并对其进行重新测试,以避免任何意外的精度更改。
受影响的 API
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈