我必须将一些价格以美分发送到 Stripe以便对卡进行收费。在我的应用程序中,total_price
值是小数,即美元和美分。显然,我可以通过乘以 100 将其转换为美分:
total_price * 100
但结果仍然是小数,Stripe 给我一个“无效金额”错误。我知道舍入 float 可能存在问题。我想知道在 Rails 中将 total_price
转换为整数的最安全方法。我看到了一些关于货币 gem 的引用资料,但在这种情况下是否有必要?
最佳答案
Ruby 有几种可用于 float 的方法,具体取决于您的需要:
(cart.total_price * 100).to_i(舍弃所有小数)
(cart.total_price * 100).round # .round(numofdecimals)
(cart.total_price * 100).floor # 1.3 => 1
(cart.total_price * 100).ceil # 1.3 => 2
(cart.total_price * 100).to_r #to rationals,例如2.5 => 5/2
希望对您有所帮助。
关于ruby-on-rails - 获取 Stripe 的美分价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12546643/