# 8.2.货币类型

这个类型以固定的小数精度存储货币金额;看见表8.3.分数精度由数据库的信用证_货币的背景表中显示的范围假定有两个小数位数。输入可以接受多种格式,包括整数和浮点文本,以及典型的货币格式,例如'$1,000.00'.输出通常为后一种形式,但取决于区域设置。

表8.3.货币类型

名称 存储大小 描述 范围
8字节 货币金额 -92233720368547758.08至+92233720368547758.07

由于此数据类型的输出对区域设置敏感,因此可能无法加载将数据存储到具有不同设置的数据库中lc_货币.为了避免出现问题,在将转储恢复到新数据库之前,请确保lc_货币与转储的数据库中的值相同或等效。

价值观数字的, 智力比基特数据类型可以转换为.从真实的双精度数据类型可以通过强制转换到数字的首先,例如:

SELECT '12.34'::float8::numeric::money;

但是,不建议这样做。由于可能存在舍入错误,浮点数不应用于处理货币。

A.价值可以被赋予数字的不失精准。转换为其他类型可能会失去精度,还必须分两个阶段完成:

SELECT '52093.89'::money::numeric::float8;

a的划分整数值的值在小数部分向零截断的情况下执行。要获得四舍五入结果,请除以一个浮点值,或强制转换重视数字的在分开和返回之前之后(后者更可取,以避免精度损失的风险。)当价值除以另一个价值,结果是双精度(即,一个纯数字,而不是金钱);货币单位在部门中相互抵消。