extra_float_digits
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | — | user | integer |
| 15 | — | user | integer |
| 16 | — | user | integer |
| 17 | — | user | integer |
| 18 | — | user | integer |
| 19 | — | user | integer |
부동소수점 값(float4, float8, geometric 타입)을 텍스트로 출력할 때의 자릿수 동작을 정한다. 기본값은 1이다.
값이 1 이상이면 float 값은 shortest-precise 형식으로 출력된다. 실제 출력 자릿수는 이 파라미터가 아니라 값 자체에 따라 결정되며, 원래의 이진 float 값을 정확히 복원하는 데 필요한 최소 자릿수만 쓴다(float8은 최대 17자리, float4는 최대 9자리). 빠르고 정밀해서 값을 다시 읽어 들이면 비트 단위로 동일한 값이 복원된다. 과거 호환을 위해 3까지의 값이 허용된다.
값이 0 이하이면 타입의 표준 자릿수(FLT_DIG/DBL_DIG)에서 지정한 만큼 줄인 자릿수로 반올림해 출력한다. 예를 들어 -1이면 float4는 유효숫자 5자리, float8은 14자리로 반올림된다. 사람이 읽기에는 좋지만 더 느리고 이진 값의 모든 비트를 보존하지 못한다. 이 파라미터의 의미와 기본값은 PostgreSQL 12에서 바뀌었다.
운영 노트: 일부 driver나 ORM이 정밀한 왕복(round-trip)을 위해 접속 시 이 값을 직접 설정한다. 버전 업그레이드 후 float 출력 자릿수가 달라져 보이는 것은 PostgreSQL 12의 기본 동작 변경 때문일 수 있다.
출처: PostgreSQL 18 문서