그돈유형은 통화 금액을 저장합니다. 고정된 분수 정밀도로; 참조표 8-3. 는 분수 정밀도는 데이터베이스에 의해 결정됩니다.lc_monetary설정. 표에 표시된 범위는 두 가지가 있다고 가정합니다. 분수. 다양한 형식으로 입력이 허용됩니다. 정수 및 부동 소수점 리터럴뿐만 아니라 일반적인 통화 형식(예:'$1,000.00'. 출력은 일반적으로 후자입니다 형식이지만 로케일에 따라 다릅니다.
이 데이터 유형의 출력은 로케일을 구분하므로 로드가 작동하지 않을 수 있습니다.돈데이터를 다른 설정을 가진 데이터베이스lc_monetary. 문제를 방지하려면 복원하기 전에 새 데이터베이스에 덤프하세요.lc_monetary다음과 같거나 동등한 값을 가집니다. 덤프된 데이터베이스입니다.
값의 값숫자, int및비긴트데이터 유형은 다음과 같습니다. 캐스팅되다돈. 에서 변환진짜그리고더블 정밀도다음으로 캐스팅하여 데이터 유형을 수행할 수 있습니다.숫자먼저, 예를 들어:
'12.34'::float8::숫자::돈;
그러나 이는 권장되지 않습니다. 부동 소수점 숫자 위험이 있으므로 돈을 처리하는 데 사용해서는 안 됩니다. 반올림 오류입니다.
A 돈값은 다음으로 변환될 수 있습니다.숫자정밀도 손실 없이. 로 변환 다른 유형은 잠재적으로 정밀도를 잃을 수 있으므로 두 단계로 완료되었습니다:
SELECT '52093.89'::money::숫자::float8;
때돈값이 다른 값으로 나뉩니다돈값, 결과는배정밀도(즉, 돈이 아닌 순수한 숫자); 통화 단위는 부서에서 서로 상쇄됩니다.