将十进制实数转换为双精度会产生奇怪的行为

时间:2016-11-25 15:36:49

标签: postgresql casting precision postgresql-9.4

我试图将小数真实转换为双精度,并且它具有以下行为:

select 2.2::real::double precision;

输出:

2.20000004768372 (double precision)

如何输出以下内容:

2.2 (double precision)

谢谢

1 个答案:

答案 0 :(得分:0)

谢谢你a_horse_with_no_name,很好看。

我通过在转换为double之前转换为文本解决了我的问题:

select 2.2::real::text::double precision;

输出:

2.2 (double precision)

为了将来参考,如果您必须使用双精度,则不应将其与真实混合使用。