我需要在PostgreSQL中用2530.30
替换2599
之类的数字。
我尝试使用ROUND(2530.30)+0.99
,但它只将小数点后的数字更改为99
。所以它导致2530.99
,这是我不想要的。
我想删除小数位并用99替换最后两位小数。我知道我可以使用integer
,但我在学校的任务说我需要这样做。
不应该有负数,作业说我应该有一个售出的产品,比方说3500.50美元,然后我需要将这个数字从3500.50
变为{ {1}}。不是3599
。
答案 0 :(得分:1)
除以100,截断,再乘以100:
SELECT trunc(2530.30 / 100) * 100 + 99;
这会将[2500, 2600)
范围内的所有数字替换为2599
或者,更一般地说,它用99
替换最后两位小数,并丢弃小数位(也将0
或12.50
转换为99
)。
正如你所说的那样,负数不会发生,所以会被忽略。