货币类型:删除没有类型转换的货币符号

时间:2015-07-28 14:01:02

标签: postgresql postgresql-9.4

我在Postgres表中使用MONEY类型作为货币数据。当我选择数据时,postgres会根据系统的lc_monetary设置格式化值。

我想在不使用显式类型转换的情况下摆脱查询结果中的货币符号(我当前正在使用Laravel的查询构建器。类型转换将需要原始查询。)

有没有办法设置lc_monetary配置设置,以便查询结果中的货币值格式化为具有2位精度且没有千位分隔符的简单浮点数(这样我就可以将其用作我的PHP代码中的字符串/浮点数?)

2 个答案:

答案 0 :(得分:2)

我谈过的大多数人都建议不要使用这种钱。通常情况下,MONEY类型会通过本地实现将输出作为字符串输出,因为LC_MONETARY格式化。大多数人(包括我自己)建议使用NUMERIC作为货币价值。

您还提到将您的货币值放在浮动中。计算机上的浮动自然会出现舍入错误,并且可能导致金额问题,所以要小心。

在Python中,当我们需要对钱进行数学运算时,我们使用十进制类,我假设PHP有类似的东西。

答案 1 :(得分:0)

是否选择了money_column / 1 :: money safe ...

根据该文档,除以货币的结果是双精度...。(货币取消了)。