GBase 8c
其他
文章
GBase 8c 数据类型-货币类型
发表于2023-12-07 09:54:1237次浏览1个评论
货币类型存储带有固定小数精度的货币金额。
下表中显示的范围假设有两位小数。可以以任意格式输入,包括整型、浮点型或者典型的货币格式(如“$1,000.00”)。根据区域字符集,输出一般是最后一种形式。
表 35 货币类型
名称 | 存储容量 | 描述 | 范围 |
money | 8 字节 | 货币金额 | -92233720368547758.08到+92233720368547758.07 |
numeric,int和bigint类型的值可以转化为money类型。如果从real和double precision类型转换到money类型,可以先转化为numeric类型,再转化为money类型,例如:
gbase=# SELECT '12.34'::float8::numeric::money;
money
--------
$12.34
(1 row)
这种用法是不推荐使用的。浮点数不应该用来处理货币类型,因为小数点的位数可能会导致错误。
money类型的值可以转换为numeric类型而不丢失精度。转换为其他类型可能丢失精度,并且必须通过以下两步来完成:
gbase=# SELECT '52093.89'::money::numeric::float8;
float8
----------
52093.89
(1 row)
当一个money类型的值除以另一个money类型的值时,结果是double precision(也就是,一个纯数字,而不是money类型);在运算过程中货币单位相互抵消。
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25059
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17529