gpt4 book ai didi

mysql - SQL GROUP BY 和 DOUBLE VALUE 属性

转载 作者:行者123 更新时间:2023-11-28 23:10:38 25 4
gpt4 key购买 nike

在我的数据库中,我有一个包含 Profit 和 Month 字段的表,Profit 的类型为 DOUBLE。

我正在执行以下查询:

SELECT SUM(profit ) AS profit , Month 
FROM general_Table
Where ID = '101' AND Year = '2017'
GROUP BY Month

我确定我的数据库只包含带两位小数的 double ,例如 9.02 或 3.79,但我得到的结果是

Profit             Month
904953.49 1
834431.1699999999 2
925363.4200000018 3

我希望得到的小数点不超过两位,因为只输入了有两位小数的值。有人可以解释我的查询是否错误吗?

最佳答案

如果只需要两位小数,则转换为小数:

SELECT CAST(SUM(profit) as DECIMAL(9, 2)) AS profit , Month 
FROM general_Table
WHERE ID = 101 AND Year = 2017
GROUP BY Month;

如果您使用浮点表示存储值,那么这些值将不准确——正如您在结果中所指出的那样。建议使用定点表示法(decimal/numeric)存储货币值。数据库支持两种不同的存储十进制值的方式是有充分理由的——一些应用程序需要精确的精度,一些需要能够表示广泛的值。

为了输出目的,您可以转换为定点表示。

关于mysql - SQL GROUP BY 和 DOUBLE VALUE 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46132241/

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