Haven't you done it already?
update catalog set zone=CAST(FLOOR(decl) AS INTEGER);
if this doesn't work, try doing it as a self join:
update catalog set zone=CAST(FLOOR(a.decl) AS INTEGER)
from catalog a
where 1=1;
I don't have a DB instance available at the moment so you'll have to check these yourself.
As another person has pointed out, you don't really need to store zone at all, you can just return it as a calculated value
select CAST(FLOOR(a.decl) AS INTEGER) as zone
from catalog a
where 1=1;