# 货币类型
货币类型用于存储带有固定小数精度的货币金额。
[表1]中显示的范围基于两位小数精度。该类型支持多种输入格式，包括整型、浮点型或者典型的货币格式（如"$1,000.00"）。根据区域字符集，输出一般是最后一种形式。
 表1货币类型 
| 名称    | 描述     | 存储空间 | 范围                                            |
|:---|:---|:---|:---|
| money | 货币金额。 | 8字节 | -92233720368547758.08 \~ +92233720368547758.07 |
   
numeric、int和bigint类型的值可以直接转换为money类型。对于real和double precision类型，建议先转换为numeric类型，再转换为money类型，例如：
```
gaussdb=# SELECT '12.34'::float8::numeric::money;
 money  
--------
 $12.34
(1 row)
```
这种用法是不推荐的。由于浮点数存在精度丢失风险，因此不应该用来处理货币类型。
money类型的值可以转换为numeric类型而不丢失精度。转换为其他类型可能丢失精度，并且必须通过以下两步来完成：
```
gaussdb=# SELECT '52093.89'::money::numeric::float8;
  float8  
----------
 52093.89
(1 row)
```
当两个money类型的值进行除法运算时，将返回double precision类型的结果（即一个纯数字，而不是money类型）；货币单位会在运算过程中相互抵消。
