Ruby on rails 如何在ruby/rails中存储加密货币余额而不导致浮点错误

Ruby on rails 如何在ruby/rails中存储加密货币余额而不导致浮点错误,ruby-on-rails,ruby,database,floating-point,Ruby On Rails,Ruby,Database,Floating Point,我正在创建一个rails应用程序,用户将在以太坊和其他加密货币中拥有帐户余额。目前,我将用户余额存储为浮点数。然而,这是一种非常糟糕的方法,因为加密货币通常可以被整除到8位,因此任何浮点错误都会导致资金的巨大损失/收益。如何存储用户余额(应使用何种数据类型)以避免导致浮点错误?谢谢我建议将值存储为整数。存储货币值时,只需将货币值乘以一百万(或任何数字),然后在应用程序中根据需要进行转换。Ruby为此提供了一个特殊的类: BigDecimal->“通常可被整除到8位”和“用户余额”有点模糊。数据类

我正在创建一个rails应用程序,用户将在以太坊和其他加密货币中拥有帐户余额。目前,我将用户余额存储为浮点数。然而,这是一种非常糟糕的方法,因为加密货币通常可以被整除到8位,因此任何浮点错误都会导致资金的巨大损失/收益。如何存储用户余额(应使用何种数据类型)以避免导致浮点错误?谢谢

我建议将值存储为整数。存储货币值时,只需将货币值乘以一百万(或任何数字),然后在应用程序中根据需要进行转换。

Ruby为此提供了一个特殊的类:


BigDecimal->

“通常可被整除到8位”和“用户余额”有点模糊。数据类型取决于要存储的值。必须保持什么范围和精度?什么是最小的和最大的值(正负两个)你要处理?考虑钱轨宝石,它应该能够做你想要的自动。