"Round" Postgres 中的 2530.30 到 2599
"Round" 2530.30 to 2599 in Postgres
我需要在 PostgreSQL 中用 2599
替换 2530.30
这样的数字。
我尝试使用 ROUND(2530.30)+0.99
,但它只会将小数点后的数字更改为 99
。所以结果是 2530.99
,这是我不想要的。
我想删除小数位并将最后两位小数替换为 99。我知道我可以只使用 integer
,但我在学校的作业说我需要这样做。
不应该有负数,作业说我应该有一个售价为 3500.50 美元的产品,然后我需要使这个数字从 3500.50
变为 3599
.不是 3500.99
.
除以 100,截断,再乘以 100:
SELECT trunc(2530.30 / 100) * 100 + 99;
这会将 [2500, 2600)
范围内的所有数字替换为 2599
。
或者,更一般地说,它将最后两位小数替换为 99
并丢弃小数位(这也将 0
或 12.50
转换为 99
)。
负数不能出现,如你所说,所以忽略。
我需要在 PostgreSQL 中用 2599
替换 2530.30
这样的数字。
我尝试使用 ROUND(2530.30)+0.99
,但它只会将小数点后的数字更改为 99
。所以结果是 2530.99
,这是我不想要的。
我想删除小数位并将最后两位小数替换为 99。我知道我可以只使用 integer
,但我在学校的作业说我需要这样做。
不应该有负数,作业说我应该有一个售价为 3500.50 美元的产品,然后我需要使这个数字从 3500.50
变为 3599
.不是 3500.99
.
除以 100,截断,再乘以 100:
SELECT trunc(2530.30 / 100) * 100 + 99;
这会将 [2500, 2600)
范围内的所有数字替换为 2599
。
或者,更一般地说,它将最后两位小数替换为 99
并丢弃小数位(这也将 0
或 12.50
转换为 99
)。
负数不能出现,如你所说,所以忽略。