在Elixir / Erlang中处理Money(只需2个小数位)的推荐数据类型是什么?

时间:2017-07-11 16:54:01

标签: erlang elixir

处理Money的推荐数据类型是什么 - 在Elixir / Erlang中只有2位小数的数值?

3 个答案:

答案 0 :(得分:7)

我认为在处理钱时你应该总是使用整数。浮点运算可能会出现舍入错误,而且处理代码即使1美分也是不合适的。例如,而不是

amount = 99.99

使用

amount_cents = 9999

如果您将金额存储在数据库中,这是非常重要的,因为Elixir和您的数据库之间的转换可能会产生不良结果。

答案 1 :(得分:3)

我强烈建议使用Decimal库。处理所有困难边缘案件已经有很多想法和工作。

金钱,就像加密一样,不是你自己应该实现的东西。你会弄错的。

答案 2 :(得分:3)

使用Decimal库是进入货币处理逻辑的方法, 特别是当您必须使用数量执行算术运算时。