繁体   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