theMoney유형은 통화 금액을 저장합니다 고정 분수 정밀도; 보다표 8-3. 그만큼 분수 정밀도는 데이터베이스의에 의해 결정됩니다.lc_monetary설정. 테이블에 표시된 범위는 두 개가 있다고 가정합니다. 분수 숫자. 입력은 다양한 형식으로 허용되며 정수 및 부동 소수점 리터럴을 포함하고 전형적인 와 같은 통화 형식'$1,000.00'. 출력은 일반적으로 후자입니다 형태이지만 로케일에 따라 다릅니다.
이 데이터 유형의 출력은 로케일에 민감하기 때문에 로드하기 위해 작동하지 않을 수 있습니다Money데이터로의 데이터 다른 설정이있는 데이터베이스lc_monetary. 문제를 피하기 위해 복원하기 전에 새 데이터베이스에 덤프하십시오lc_monetary버려진 데이터베이스.
값숫자, int및bigint데이터 유형은 할 수 있습니다 캐스트 됨Money. 에서 전환Realand더블 정도데이터 유형은 캐스트를 통해 수행 할 수 있습니다숫자첫 번째, 예 :
선택 '12 .34 ':: float8 :: numeric :: money;
그러나 이것은 권장되지 않습니다. 부동 소수점 번호 잠재력으로 인해 돈을 처리하는 데 사용해서는 안됩니다. 반올림 오류.
A Money값을 캐스트 할 수 있습니다숫자정밀도 손실없이. 전환 다른 유형은 잠재적으로 정밀도를 잃을 수 있으며 두 단계로 완료 :
선택 '52093.89':: money :: numeric :: float8;
언제Money값은 다른 사람으로 나눈Money값, 결과는입니다.이중 정밀(즉, 돈이 아닌 순수한 숫자); 통화 장치는 부서에서 서로를 취소합니다.