处理Money的推荐数据类型是什么 - 在Elixir / Erlang中只有2位小数的数值?
答案 0 :(得分:7)
我认为在处理钱时你应该总是使用整数。浮点运算可能会出现舍入错误,而且处理代码即使1美分也是不合适的。例如,而不是
amount = 99.99
使用
amount_cents = 9999
如果您将金额存储在数据库中,这是非常重要的,因为Elixir和您的数据库之间的转换可能会产生不良结果。
答案 1 :(得分:3)
我强烈建议使用Decimal库。处理所有困难边缘案件已经有很多想法和工作。
金钱,就像加密一样,不是你自己应该实现的东西。你会弄错的。
答案 2 :(得分:3)
使用Decimal库是进入货币处理逻辑的方法, 特别是当您必须使用数量执行算术运算时。