这是 MariaDB 中 ROUND 函数的故障吗?

问题描述

在我正在进行的一个项目中,我发现自己在后端和前端进行了相同的计算。计算是四舍五入两个数字与另一个数字之比的乘积,即对舍入的表达式的形式为

x / y * n

在前端我使用 JavaScript,后端我使用 MariaDB。 x=41,y=60 和 n=30,前端给我 21,这是正确的,因为

41 / 60 * 30

是 20.5,但是当我向它传递这个表达式时,MariaDB 的 ROUND() 函数实现给了我 20!

ROUND(41/60*30,0)

即使它 (MariaDB) 会评估

41 / 60 * 30

到正确的结果 20.5000

如果我将 20.5 (20.5000) 传递给 MariaDB 的 ROUND() 函数,该函数会返回正确的结果 21!我用以下 SQL 语句总结了这个谜(至少对我而言)

SELECT 41/60*30,ROUND(41/60*30,0),ROUND(20.5,ROUND(20.5000,0)

其输出低于...

enter image description here

MariaDB 中 ROUND() 函数的实现有问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)