簡體   English   中英

SQL 服務器圓形 Function 問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM