gpt4 book ai didi

MySQL ROUND() 计算错误

转载 作者:行者123 更新时间:2023-11-29 03:09:18 26 4
gpt4 key购买 nike

我遇到了 MySQL ROUND() 函数的问题。在这里:

当我这样做时:

SELECT ROUND(7/2) as avg FROM bla blah

平均为 4

当我这样做时:

 SELECT ROUND(SUM(marks)/COUNT(marks)) as avg

平均为 3注意:SUM(marks) 本身给出 7,COUNT(marks) 给出 2,据我所知ROUND(SUM(marks)/COUNT(marks)) 应该等于 ROUND(7/2)

问题是什么?

最佳答案

显然 MySQL 将 7/2 解释为 7.0/2.0 并使用 float 而不是整数进行计算,给出结果 3.5而不是 3

当您使用 sum 时,结果的数据类型与字段相同,因此您将使用整数进行计算,即 7/2,给出结果 3

在进行计算之前将值转换为double:

SELECT ROUND(cast(SUM(marks) as double)/cast(COUNT(marks) as double)) as avg

关于MySQL ROUND() 计算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812028/

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