1

最近,我在尝试将DOUBLE PRECISIONpostgres 数据库中的列中的数据加载DOUBLE PRECISION到 AWS Redshift 中的列时遇到了溢出错误:

溢出,2.8079240261080252e-316(双重有效范围 2.225074e-308 到 1.797693e+308)

根据双精度浮点数的维基百科条目,redshift支持的数字范围似乎包括“正常双精度”,但不包括“次正常双精度”。

作为附加检查,我尝试检索最小的次正规双精度,这在 postgres 中是成功的,但在 redshift 中导致溢出错误:

SELECT '4.94065645841246544e-324'::DOUBLE PRECISION;

基于这种观察到的行为,我们是否可以得出结论,Redshift 没有正确实现浮点数的 IEEE 754 标准?有没有人在支持和不支持次正常数字的系统之间进行互操作的相关经验?

4

0 回答 0