이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.와이즈 토토 : 문서 : 17 : 8.2. 금전적 유형버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

8.2. 화폐 유형

유형은 통화 금액을 저장합니다. 고정된 분수 정밀도로; 참조표 8-3. 는 분수 정밀도는 데이터베이스에 의해 결정됩니다.lc_monetary설정. 표에 표시된 범위는 두 가지가 있다고 가정합니다. 분수. 다양한 형식으로 입력이 허용됩니다. 정수 및 부동 소수점 리터럴뿐만 아니라 일반적인 통화 형식(예:'$1,000.00'. 출력은 일반적으로 후자입니다 형식이지만 로케일에 따라 다릅니다.

표 8-3. 화폐 유형

이름 저장소 크기 설명 범위
8바이트 통화 금액 -92233720368547758.08 ~ +92233720368547758.07

이 데이터 유형의 출력은 로케일을 구분하므로 로드가 작동하지 않을 수 있습니다.데이터를 다른 설정을 가진 데이터베이스lc_monetary. 문제를 방지하려면 복원하기 전에 새 데이터베이스에 덤프하세요.lc_monetary다음과 같거나 동등한 값을 가집니다. 덤프된 데이터베이스.

값의 값숫자, int비긴트데이터 유형은 다음과 같습니다. 캐스팅되다. 에서 변환진짜그리고더블 정밀도다음으로 캐스팅하여 데이터 유형을 수행할 수 있습니다.숫자먼저, 예를 들어:

'12.34'::float8::숫자::돈;

그러나 이는 권장되지 않습니다. 부동 소수점 숫자 위험이 있으므로 돈을 처리하는 데 사용해서는 안 됩니다. 반올림 오류입니다.

A 값은 다음으로 변환될 수 있습니다.숫자정밀도 손실 없이. 로 변환 다른 유형은 잠재적으로 정밀도를 잃을 수 있으므로 두 단계로 완료되었습니다:

SELECT '52093.89'::money::숫자::float8;

a의 분할정수로 된 값 값은 소수 부분을 잘라내어 수행됩니다. 제로. 반올림된 결과를 얻으려면 부동 소수점 값으로 나누고, 또는 캐스트값을숫자나누기 전과 다시나중에. (후자는 피하는 것이 바람직하다. 정밀도 손실 위험이 있습니다.) a값 다른 것으로 나누어진다값, 결과는배정밀도(즉, 순수 돈이 아닌 숫자); 통화 단위는 서로 상쇄됩니다. 부서.