mysql计算结果强制四舍五入

mysql计算结果强制四舍五入,mysql,decimal,rounding,Mysql,Decimal,Rounding,我有这个领域: user_id VARCHAR(20); insert_date DATE; fgps DECIMAL(5,2); 并使用以下(简化)语句计算值: -- @num1, 2 and 3 are SET with some query to get the values SET @gps_average := ((@num1 + @num2 + @num3) / 3.0); INSERT INTO user_gps VALUES(:user_id, :insert_dat

我有这个领域:

user_id VARCHAR(20);
insert_date DATE;
fgps DECIMAL(5,2); 
并使用以下(简化)语句计算值:

-- @num1, 2 and 3 are SET with some query to get the values    
SET @gps_average := ((@num1 + @num2 + @num3) / 3.0);
INSERT INTO user_gps VALUES(:user_id, :insert_date, @gps_average);
该脚本运行良好,除了一件事,@gps_average的结果被mysql服务器强制四舍五入。i、 如果我有这些价值观

@num1=3, @num2=4, @num3=4
我应该在fgps中存储3.67,但我得到的是4.00

我做错了什么,或者如何强制服务器不对我的值进行取整

我在其他一些字段上做过类似的计算,并且这些值正确地存储为十进制值,但不是在这种情况下,这让我抓狂


提前感谢。

此内容无法复制。在这里看到它的工作:一定是你的代码有问题,但不是MySQL。你的@num1..3是如何定义的?你试过将它们声明为十进制吗?你从
SELECT@gps\u average:=((@num1+@num2+@num3)/3.0)中得到了什么?里克·詹姆斯:如果我在PHPMyAdmin中运行脚本,我会得到@fgps的3.66666。我决定使用前端(C++)来计算这一部分,作为一种解决方法,因此问题仍然是个谜:)无论如何,如果有人能提供一个原因或解决方案,我将非常感谢他们的努力,感谢所有一直试图帮助我的人。