Redshift无法正确插入数据

时间:2018-07-13 09:42:58

标签: amazon-redshift

我的数据类型为decimal(18,4),通过复制命令我将json插入redshift表中。对于值0.13,它正确插入,而对于值0.1475,它插入为0.1474

1 个答案:

答案 0 :(得分:2)

IEEE754 Double标准中 0.1475 的最准确表示是

1.47499999999999992228438827624E-1(类似,但浮点的数字较少)

Redshift内部使用(浮点数或双精度数)内部,然后将数字以定义的精度(在您的情况下为4)插入列中,并且不应用舍入,而只是将结果修整为小数点后4位。

只有X + Y/(2^N)的值会显示精确,可以测试。对于4个小数位,最佳值为 1/16 = 0.0625

因此,根据文档here

使用copy时,必须通过 ROUNDEC 选项。