8.2. 금전적 유형

theMoney유형은 고정 된 분수 정밀도로 통화 금액을 저장합니다. 보다표 8.3. 분수 정밀도는 데이터베이스의에 의해 결정됩니다.lc_monetary설정. 테이블에 표시된 범위는 두 개의 분수 숫자가 있다고 가정합니다.'$ 1,000.00'. 출력은 일반적으로 후자의 형태이지만 로케일에 따라 다릅니다.

표 8.3. 금전적 유형

이름 스토리지 크기 설명 범위
Money 8 바이트 통화 금액 -92233720368547758.08 ~ +92233720368547758.07

이 데이터 유형의 출력은 로케일에 민감하기 때문에로드하는 것이 작동하지 않을 수 있습니다Money다른 설정이 다른 데이터베이스로의 데이터lc_monetary. 문제를 피하려면 새 데이터베이스로 덤프를 복원하기 전에 확인하십시오lc_monetary덤프 된 데이터베이스와 동일하거나 동등한 값이 있습니다.

숫자, intbigint데이터 유형을 캐스트 할 수 있습니다Money. 에서 전환Real이중 정밀도데이터 유형은 캐스트를 통해 수행 할 수 있습니다숫자첫 번째, 예 :

선택 '12 .34 ':: float8 :: numeric :: money;

그러나 권장되지 않습니다. 부동 소수점 번호는 반올림 오류 가능성으로 인해 돈을 처리하는 데 사용해서는 안됩니다.

A Money값을 캐스트 할 수 있습니다숫자정밀도 손실없이. 다른 유형으로의 전환은 잠재적으로 정밀도를 잃을 수 있으며 두 단계로도 수행해야합니다.

선택 '52093.89':: money :: numeric :: float8;

aMoney정수 값에 의한 값은 분수 부분을 0으로 절단하여 수행됩니다. 둥근 결과를 얻으려면 부동 소수점 값으로 나누거나를 캐스팅하십시오.Moneyvalue to숫자나누기 전Money나중에. (후자는 정밀 손실 위험을 피하는 것이 바람직합니다.) A시기Money값은 다른 사람으로 나눈Money값, 결과는입니다.이중 정밀도(즉, 돈이 아닌 순수한 숫자); 통화 장치는 부서에서 서로를 취소합니다.

수정 제출

문서에 올바른 것이없는 것이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면