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

8.2. 화폐 유형

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

표 8-3. 화폐 유형

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

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

숫자, intbigint데이터 유형을 다음으로 변환할 수 있습니다.. 에서 변환진짜그리고배정밀도다음으로 캐스팅하여 데이터 유형을 수행할 수 있습니다.숫자먼저, 예를 들어:

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

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

A 값은 다음으로 캐스팅될 수 있습니다.숫자정밀도 손실 없이. 다른 유형으로의 변환은 잠재적으로 정밀도를 잃을 수 있으며 두 단계로 수행되어야 합니다.

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

a의 분할정수 값에 의한 값은 소수 부분을 0으로 자르면서 수행됩니다. 반올림된 결과를 얻으려면 부동 소수점 값으로 나누거나값을숫자나누기 전과 다시나중에. (정밀도 손실 위험을 피하기 위해서는 후자가 바람직합니다.) a값이 다른 값으로 나뉩니다값, 결과는배정밀도(즉, 돈이 아닌 순수한 숫자); 통화 단위는 부서에서 서로 상쇄됩니다.