Re: Problem in

Tom Lane <[email protected]> Thu, 25 Apr 2019 12:56:46 -0400
Newsgroups gmane.comp.db.postgresql.sql
Message-ID <[email protected]>
Max Lipsky <[email protected]> writes:
> SELECT acos(
>            cos(radians(48.9193))
>            * cos(radians(48.9193))
>            * cos(radians(2.5431) - radians(2.5431))
>            + sin(radians(48.9193))
>              * sin(radians(48.9193))
>        ) as result;

> This returned [22003] ERROR: input is out of range

Not too surprising, because (at least on my machine)

regression=# select cos(radians(48.9193))
regression-#            * cos(radians(48.9193)) +  sin(radians(48.9193))
regression-#              * sin(radians(48.9193));
      ?column?      
--------------------
 1.0000000000000002
(1 row)

Problems of this sort are inevitable when working with finite-precision
math.

https://en.wikipedia.org/wiki/Round-off_error

			regards, tom lane