"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 并丢弃小数位(这也将 012.50 转换为 99)。

负数不能出现,如你所说,所以忽略。