DateTime 加法方法精確度變更
在 .NET 6 和舊版中,DateTime
新增方法的值參數會四捨五入到最接近的毫秒。 在 .NET 7 和更新版本中,會使用值參數的完整 Double 精確度。 不過,由於浮點數數學固有的不精確性,因此產生的精確度會有所不同。
先前的行為
先前,DateTimeAdd*
方法的 double
值參數 (例如 DateTime.AddDays(Double)) 會四捨五入為最接近的毫秒。
新的行為
從 .NET 7 開始,會使用 double
值參數的完整精確度,以改善 受影響方法 的精確度。
導入的版本
.NET 7
中斷性變更的類型
此變更為行為變更。
變更原因
這項變更是為了回應社群要求,以改善 DateTime 中的精確度。
建議的動作
除非您有與 Add*
方法精確度相依的程式碼,否則不會有任何特定動作。 在此情況下,請檢閱您的程式碼並重新測試,以避免任何精確度意外變更的情況。