set div_precision_increment = X;设置精度后,除法计算仍然只保留了4位小数,参考mysql,在设置了精度后,能够按照设置的精度保留对应小数位。

如图,tidb在设置div_precision_increment ,除法计算仍然只保留了4为小数。而mysql8.0中可以按设置的数字,保留除法计算的小数位。
数据库版本为tidb v5.1.1.

set div_precision_increment = 10;
select 1/3;
image
image

【 Bug 的影响】
在sql中进行除法计算时,可能会导致最终计算结果有巨大的误差。
如果无法通过该参数进行精度设置,则需要找出每条执行了除法运算的sql,对参与了除法计算的数字,字段,或是通过函数、计算出的中间计算数字,进行cast操作。才能将除法的精度设置到我们想要的精度。工作量巨大。

【期望看到的行为】

在set div_precision_increment = X;后,除法计算按指定的数字,保留小数位。

【相关组件及具体版本】

tidb v5.1.1

TiDB 不支持设置浮点数的精度,设置 div_precision_increment 是不会生效的。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。