【已解决】字段值相乘精度丢失问题

Viewed 76

如图,使用表字段进行计算时精度会丢失,在 2.1.1和2.1.2 版本都遇到了
字段类型是 DECIMAL(38, 12) NULL

image.png

2 Answers

这个符合预期。由于decimal的precision最大是38,所以

cast(est_wt_pct as DECIMAL(38, 12)) *cast(est_wt_pct as DECIMAL(38, 12)) 

的结果,为了尽量保证整数部分的结果可以容纳。只保留了6位小数。结果是decimal(38,6)。
union all的策略同样是尽量保持整数部分,所以union all的结果同样是decimal(38,6)。

如果希望当decimal溢出时保留更多的小数位数,可以调整参数decimal_overflow_scale。此参数默认值是6

【问题状态】处理中
【问题处理】内部定位中,有进展会更新回帖