gpt4 book ai didi

sql-server - SQL 服务器 : SUM() weird behaviour

转载 作者:行者123 更新时间:2023-12-02 08:37:04 24 4
gpt4 key购买 nike

我在 SQL Server Management Studio 中运行这个示例:

SELECT CONVERT(REAL, -2101.12) n INTO #t
SELECT * FROM #t
SELECT SUM(n) FROM #t

第一个 SELECT 创建一个临时表 #t,其中包含 1 列 n 类型的实数,并将 1 行放入其中值 -2101.12

第二个 SELECT 确认表是用预期的内容创建的,结果是:

n
---------
-2101.12

第三个 SELECT 对那里唯一的数字求和,但结果是:

-2101.1201171875

所以问题是:0.0001171875 来自哪里?

编辑: 我知道 real 和 float 数据类型缺乏精度,不幸的是我不能因此改变数据库架构。但令我惊讶的是,我希望在第二个选择中也看到额外的小数,因为它应该以缺乏精度的方式存储。既然它不会发生在第二次选择上,那么为什么求和函数会选择它?

最佳答案

您刚刚发现了真实(又名浮点)数据 is approximate .请改用十进制数据类型。

关于sql-server - SQL 服务器 : SUM() weird behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com