[英]SQL Server Round Function Issue
我正在使用 SSMS 2014,在我的SampleTable
中舍入列( FLOAT
)時遇到問題。 如果您注意到下面的四舍五入,7.725 應該是 7.73,但 output 是 7.72,這是錯誤的。 希望你能幫我解決這個問題。
代碼
SELECT date, ROUND(timeelapsed, 2) AS RoundedValue, timeelapsed
FROM SampleTable
OUTPUT
date RoundedValue timeelapsed
----------------------------------------
2020-02-03 2.78 2.781944445
2020-02-05 0.43 0.433333333
2020-02-06 8.67 8.670833334
2020-02-07 5.78 5.783055556
2020-02-08 2.43 2.431111111
2020-02-09 7.72 7.725
2020-02-10 4 3.996388889
問題是 7.725 不能完全表示為浮點數。
換句話說,浮點值略小於 7.725,由於它比 7.73 更接近 7.72,因此結果為 7.72。
另一方面,可以精確表示 7.025,這將四舍五入為 7.03。
如果這在您的應用程序中很重要,您可以考慮改用小數類型,它允許精確表示任何十進制數(直到指定的精度)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.