我在Postgres表中使用MONEY类型作为货币数据。当我选择数据时,postgres会根据系统的lc_monetary
设置格式化值。
我想在不使用显式类型转换的情况下摆脱查询结果中的货币符号(我当前正在使用Laravel的查询构建器。类型转换将需要原始查询。)
有没有办法设置lc_monetary
配置设置,以便查询结果中的货币值格式化为具有2位精度且没有千位分隔符的简单浮点数(这样我就可以将其用作我的PHP代码中的字符串/浮点数?)
答案 0 :(得分:2)
我谈过的大多数人都建议不要使用这种钱。通常情况下,MONEY类型会通过本地实现将输出作为字符串输出,因为LC_MONETARY格式化。大多数人(包括我自己)建议使用NUMERIC作为货币价值。
您还提到将您的货币值放在浮动中。计算机上的浮动自然会出现舍入错误,并且可能导致金额问题,所以要小心。
在Python中,当我们需要对钱进行数学运算时,我们使用十进制类,我假设PHP有类似的东西。
答案 1 :(得分:0)
是否选择了money_column / 1 :: money safe ...
根据该文档,除以货币的结果是双精度...。(货币取消了)。