BUG #15925: Loss of precision converting money to numeric
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: slawomir.chodnicki@gmail.com
Date: 2019-07-26T07:39:17Z
Lists: pgsql-bugs
The following bug has been logged on the website: Bug reference: 15925 Logged by: Slawomir Chodnicki Email address: slawomir.chodnicki@gmail.com PostgreSQL version: 11.4 Operating system: Linux Description: As per documentation converting a money value to numeric does not lose precision. In general that is the case: select '8547758.07'::money, '8547758.07'::money::numeric(30,2); money |numeric | -------------|----------| $8,547,758.07|8547758.07| During my testing I found unexpected results for the min and max value of the money type. select '-92233720368547758.08'::money, '-92233720368547758.08'::money::numeric(30,2); money |numeric | ---------------------------|---------------------| -$92,233,720,368,547,758.08|-92233720368547758.00| Note that the cent value is gone after converting to numeric. Same issue for the max value: money |numeric | --------------------------|--------------------| $92,233,720,368,547,758.07|92233720368547758.00| Best Wishes Slawo
Commits
-
Fix loss of fractional digits for large values in cash_numeric().
- fa854112fc3d 10.10 landed
- ca918f99aaa5 11.5 landed
- b9d2c5c7ac80 13.0 landed
- 81b29c87114c 9.4.24 landed
- 30bed9f63823 9.6.15 landed
- 13e493cf68a4 9.5.19 landed
- 01e0538e8b12 12.0 landed