Thread: Re: [GENERAL] Cast double precision to integer & check for overflow
Just cast to integer. Decimal portion will be lost.
Sent from my smartphone
----- Reply message -----
From: "Ian Pilcher" <arequipeno@gmail.com>
To: <pgsql-general@postgresql.org>
Subject: [GENERAL] Cast double precision to integer & check for overflow
Date: Sat, Jan 26, 2013 3:13 pm
I need to cast a double precision into an integer, and I want to check
that the value will actually fit (modulo rounding).
Coming from a C/Java background, this seems like something that should
be utterly trivial. In my searching, however, I can't seem to find any
SQL equivalent of INT_MAX, Integer.MAX_VALUE, etc.
Do I have to hard-code this value?
Thanks!
(And yes, I do feel stupid having to ask this question here.)
--
========================================================================
Ian Pilcher arequipeno@gmail.com
Sometimes there's nothing left to do but crash and burn...or die trying.
========================================================================
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Sent from my smartphone
----- Reply message -----
From: "Ian Pilcher" <arequipeno@gmail.com>
To: <pgsql-general@postgresql.org>
Subject: [GENERAL] Cast double precision to integer & check for overflow
Date: Sat, Jan 26, 2013 3:13 pm
I need to cast a double precision into an integer, and I want to check
that the value will actually fit (modulo rounding).
Coming from a C/Java background, this seems like something that should
be utterly trivial. In my searching, however, I can't seem to find any
SQL equivalent of INT_MAX, Integer.MAX_VALUE, etc.
Do I have to hard-code this value?
Thanks!
(And yes, I do feel stupid having to ask this question here.)
--
========================================================================
Ian Pilcher arequipeno@gmail.com
Sometimes there's nothing left to do but crash and burn...or die trying.
========================================================================
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
On 01/26/2013 05:06 PM, Alexander Gataric wrote: > Just cast to integer. Decimal portion will be lost. That part I've got. :-) It's checking that the double precision value will actual fit within the range of the integer type (-2147483648 to +2147483647). I could certainly hard-code these values, but I'd like to use a more expressive syntax, if it is available. -- ======================================================================== Ian Pilcher arequipeno@gmail.com Sometimes there's nothing left to do but crash and burn...or die trying. ========================================================================
On 01/26/2013 03:09 PM, Ian Pilcher wrote: > On 01/26/2013 05:06 PM, Alexander Gataric wrote: >> Just cast to integer. Decimal portion will be lost. > > That part I've got. :-) > > It's checking that the double precision value will actual fit within the > range of the integer type (-2147483648 to +2147483647). I could > certainly hard-code these values, but I'd like to use a more expressive > syntax, if it is available. > http://www.postgresql.org/docs/9.2/interactive/catalog-pg-type.html production=# SELECT typname,typlen from pg_type where typname ='int8'; -[ RECORD 1 ]- typname | int8 typlen | 8 -- Adrian Klaver adrian.klaver@gmail.com