SQL Server 2014舍入浮点数会产生意外结果

问题描述 投票:0回答:2

有人可以解释以下查询的结果吗?我认为这是SQL Server 2014中的错误。

DECLARE @x float
SET @x=58.415
SELECT ROUND(58.415,2), ROUND(@x,2)

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9KWHV0VC5wbmcifQ==” alt =“在此处输入图像描述”>“ >>

有人可以解释以下查询的结果吗?我认为这是SQL Server 2014中的错误。DECLARE @x float SET @ x = 58.415 SELECT ROUND(58.415,2),ROUND(@ x,2)

sql sql-server tsql sql-server-2014 reporting
2个回答
1
投票

您所看到的解释是,浮点算术在SQL Server(或任何其他数据库或编程语言)中不正确。这是实际发生的情况,其中显示了“真实”值以供说明:


1
投票

因为第一个参数存储为十进制(5,3):

© www.soinside.com 2019 - 2024. All rights reserved.