MONEY(p,s) 数据类型

MONEY 数据类型存储货币金额。

与 DECIMAL(p,s) 数据类型类似,MONEY 可以存储最多 32 个有效数字的定点数,其中 p 是有效数字总数(精度),而 s 是小数点右边的位数(小数位)。

与 DECIMAL 数据类型不同,总是将 MONEY 数据类型视为定点小数处理。数据库服务器将数据类型 MONEY(p) 定义为 DECIMAL(p,2)。如果未指定精度和小数位,那么数据库服务器将 MONEY 列定义为 DECIMAL(16,2)。

可以使用以下公式(下舍入为整数字节)来计算 MONEY 数据类型的字节存储器:
如果小数位为奇数:N = (精度 + 4) / 2
如果小数位为偶数:N = (精度 + 3) / 2

例如,精度为 16 并且小数位为 2 的 MONEY 数据类型 (MONEY(16,2)) 需要 10(或者 (16 + 3)/2)个字节的存储空间。

在缺省语言环境中,客户机应用程序使用下列货币表示法来确定 MONEY 列中值的格式:
  • 货币符号:值前面的美元符号 ( $ )
  • 千位分隔符:逗号 ( , ),它在值的整数部分中每三位分隔一次
  • 小数点:句点 ( . )位于值的整数部分与小数部分之间

要更改 MONEY 值的格式,请更改 DBMONEY 环境变量。有关有效的 DBMONEY 设置,请参阅 DBMONEY 环境变量

数据库服务器用于小数位的缺省值与语言环境相关。缺省语言环境指定两位缺省小数位。对于非缺省语言环境,如果声明中省略了小数位,那么数据库服务器使用特定于语言环境的小数位来创建 MONEY 值。

客户机应用程序使用的货币表示法与语言环境相关。如果指定非缺省语言环境,那么客户机将特定于文化的格式用于 MONEY 值,根据语言环境文件所指定的内容,这些 MONEY 值的前导(或结尾)货币符号、千位分隔符和小数分隔符可能与缺省的美国英语格式不同。有关语言环境依赖性的更多信息,请参阅《GBase 8s GLS 用户指南》。