如何从 Rails 中的浮点数中去除小数点

Koh*_*ohl 2 methods ruby-on-rails stripe-payments

我想在将价格发送到表格/条带之前去掉价格中的小数点。我可以使用其他方法来执行此操作吗?

在我的 Product.rb 模型中,我有:

def monetize_amount
    self.price.to_s.delete(".").to_f
end
Run Code Online (Sandbox Code Playgroud)

在 charge_controller 中我有:

def create
  @product = Product.find(params[:id])
    # Amount in cents
  **@amount = @product.monetize_amount**

  customer = Stripe::Customer.create(
   :email => 'example@stripe.com',
   :card  => params[:stripeToken]
  )

  charge = Stripe::Charge.create(
   :customer    => customer.id,
   :amount      => @amount,
   :description => 'Rails Stripe customer',
   :currency    => 'usd'
  )

 rescue Stripe::CardError => e
 flash[:error] = e.message
 redirect_to charges_path
end
Run Code Online (Sandbox Code Playgroud)

Phi*_*rom 5

就像argentum47说的那样。将其转换为以分为单位的整数值。

\n\n
class Product < AR::Base\n  def price_in_cents\n    (price * 100).to_i\n  end\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后稍后你可以这样做:

\n\n
charge = Stripe::Charge.create(\n   :customer    => customer.id,\n   :amount      => @product.price_in_cents,\n   #\xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n