DateTime 加法方法精確度變更

在 .NET 6 和舊版中,DateTime 新增方法的值參數會四捨五入到最接近的毫秒。 在 .NET 7 和更新版本中,會使用值參數的完整 Double 精確度。 不過,由於浮點數數學固有的不精確性,因此產生的精確度會有所不同。

先前的行為

先前,DateTimeAdd* 方法的 double 值參數 (例如 DateTime.AddDays(Double)) 會四捨五入為最接近的毫秒。

新的行為

從 .NET 7 開始,會使用 double 值參數的完整精確度,以改善 受影響方法 的精確度。

導入的版本

.NET 7

中斷性變更的類型

此變更為行為變更

變更原因

這項變更是為了回應社群要求,以改善 DateTime 中的精確度。

除非您有與 Add* 方法精確度相依的程式碼,否則不會有任何特定動作。 在此情況下,請檢閱您的程式碼並重新測試,以避免任何精確度意外變更的情況。

受影響的 API