PostgreSQL 10.1不正确的除法输出
当分母大于分子时,Postgres给出了错误的除法结果PostgreSQL 10.1不正确的除法输出,sql,postgresql,integer-division,Sql,Postgresql,Integer Division,当分母大于分子时,Postgres给出了错误的除法结果 select 2/4给出0,select 4/2工作正常 但是select 2/4实际上应该返回0.5 但它返回0作为整数尝试浮点除法,如: select 2.0 / 4 -- shows 0.5 或: Postgres对整数进行整数除法。具有讽刺意味的是,它不会对avg()进行整数平均,但这是另一回事 一种解决方案是简单地将其中一个值转换为数值: select 2/4, 2::numeric/4 Postgres将为数字添加小数位数
select 2/4
给出0,select 4/2
工作正常
但是select 2/4
实际上应该返回0.5
但它返回0作为整数尝试浮点除法,如:
select 2.0 / 4 -- shows 0.5
或:
Postgres对整数进行整数除法。具有讽刺意味的是,它不会对
avg()
进行整数平均,但这是另一回事
一种解决方案是简单地将其中一个值转换为数值
:
select 2/4, 2::numeric/4
Postgres将为数字添加小数位数。这是因为它是整数除法。PostgreSQL工作正常。如果你想要一个浮点除法,那么先将其转换为浮点除法,请只标记你正在使用的版本,而不是在你的问题上分散随机标记和版本。你认为世界上最大的数据库系统之一Postgres有一个简单除法无法正常工作的错误吗?
select 2/4, 2::numeric/4