获取Cents for Stripe的价格

ben*_*t_w 3 ruby ruby-on-rails stripe-payments

我必须向Stripe发送一些以美分为单位的金额以便对卡进行收费.在我的应用程序中,total_price值是小数,即以美元和美分.显然,我可以通过乘以100将其转换为美分:

total_price * 100
Run Code Online (Sandbox Code Playgroud)

但结果仍然是小数,Stripe给我一个'无效金额'错误.我知道圆形浮子可能存在问题.我想知道total_price在Rails中将我转换为整数的最安全的方法.我看过一些关于金钱宝石的参考但在这种情况下这是必要的吗?

Lor*_*uer 8

Ruby有几种可用于浮点数的方法,具体取决于您的需求:

  • (cart.total_price * 100).to_i (discards all decimals)
  • (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, e.g. 2.5 => 5/2

我希望这有帮助.

  • 我不认为`to_r`在这里会有所帮助. (3认同)