"轮" Postgres的2530.30至2599

时间:2017-03-25 20:27:48

标签: postgresql math rounding

我需要在PostgreSQL中用2530.30替换2599之类的数字。

我尝试使用ROUND(2530.30)+0.99,但它只将小数点后的数字更改为99。所以它导致2530.99,这是我不想要的。

我想删除小数位并用99替换最后两位小数。我知道我可以使用integer,但我在学校的任务说我需要这样做。

不应该有负数,作业说我应该有一个售出的产品,比方说3500.50美元,然后我需要将这个数字从3500.50变为{ {1}}。不是3599

1 个答案:

答案 0 :(得分:1)

除以100,截断,再乘以100:

SELECT trunc(2530.30 / 100) * 100 + 99;

这会将[2500, 2600)范围内的所有数字替换为2599 或者,更一般地说,它用99替换最后两位小数,并丢弃小数位(也将012.50转换为99)。

正如你所说的那样,负数不会发生,所以会被忽略。