Re: Cast double precision to integer & check for overflow - Mailing list pgsql-general

From Jasen Betts
Subject Re: Cast double precision to integer & check for overflow
Date
Msg-id ke2ood$o5o$3@gonzo.reversiblemaps.ath.cx
Whole thread Raw
In response to Cast double precision to integer & check for overflow  (Ian Pilcher <arequipeno@gmail.com>)
List pgsql-general
On 2013-01-26, Gavan Schneider <pg-gts@snkmail.com> wrote:
> On Saturday, January 26, 2013 at 08:13, Ian Pilcher wrote:
>
>>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.
>>
> So far I haven't seen such defined constants but am happy to
> share the RTFM moment. :-)
>
> I am sure you have already found this:
><http://www.postgresql.org/docs/9.2/static/datatype-numeric.html#DATATYPE-NUMERIC-TABLE>
>
>>Do I have to hard-code this value?
>>
> Or cast double to both numeric(13000,0) and integer and compare
> them. A stored function could encapsulate this along with
> raising the exception when required. If design is still fluid
> and performance allows the numeric type could do the job without
> fear of overflow.

there's no need to cast and compare. if the number doesn't fit the cast will
fail with an exception.

--
⚂⚃ 100% natural

pgsql-general by date:

Previous
From: Scott Marlowe
Date:
Subject: Re: noobie question
Next
From: Jasen Betts
Date:
Subject: Re: Restore 1 Table from pg_dumpall?