雅典娜在这里做什么?

select
(10.0*12+10/10000)

它返回值120.0

我知道它不是四舍五入,因为我代码中的"10"和"12"是小数<0.01.

推荐答案

你被另一个整数除法的例子震撼了.10/10000是在10/10000的和之前计算的,而10/10000的类型由参与除法的类型确定,因此select typeof(10/10000)integer,将操作数中的一个更改为双精度(可能具有正确的精度):

select (10.0*12 + 10.000/10000);

输出:

  _col0  
---------
 120.001 

Sql相关问答推荐

基于时间的SQL聚合

Select 最大值,但当并列时,从其他列 Select 最大值

有没有办法在Postgres中存储带有时区的时间戳,而不将其转换为UTC

按分类标准检索记录

是否可以为表中的所有列生成散列值?

IF NOT EXISTS子查询的性能瓶颈

优化Postgres搜索未知长度的子串

在Oracle SQL中按月生成日期

在 Oracle 21c 中透视文本值

错误:postgresql 中缺少表评级的 FROM 子句条目

Postgresql:在链接表中判断相关表中插入值的条件

正则表达式忽略特定数据部分的分隔符

SQL - 只需要 GROUP BY SELECT 的一列

PostgreSQL:通过数组的元素从另一个表中 Select 数据,然后按顺序显示

过滤具有一对多关系的两个表之间的数据

如何将多行的查询结果合并为一行

SELECT 用于 Parent、Children 和 ORDER BY [Order] 列

如何在一个存储过程中创建全局临时表,并在另一个存储过程中使用它

SQL Group By 然后映射出是否存在值

Postgres 窗口函数未按预期工作