-2

我有一个优惠券模型,我正在尝试计算您从原始交易中节省了多少。

优惠券.rb

def original_deal
  original_price
end

def our_deal
  deal_price
end

def percentage_off
  original_deal / our_deal * 100.ceil
end

显示.html

<%= number_to_percentage(@coupon.percentage_off, :precision => 2) %> 

优惠券信息

original_price = £100.00
deal_price = £90.00

结果。

我得到 111.11% 作为答案。我错过了什么?

4

3 回答 3

8

您的折扣百分比计算已关闭。您需要找到原始价格和新价格之间的差异。并除以原价得到折扣百分比:

def percentage_off
   (Float(original_deal - our_deal) / original_deal * 100).ceil
end

您的输入示例现在将返回(100 - 90) / 100 * 100 = 10

于 2012-06-19T14:13:40.030 回答
3

这是一个替代的逐步计算:)

original = 100.0
our = 90.0

our_relative = our / original # => 0.9
you_save = (1.0 - our_relative).round(2) # => 0.1
you_save_percents = (you_save * 100).round # => 10
于 2012-06-19T14:15:08.970 回答
1

计算结果是正确的。如果您查看您提供的值并进行数学运算,您会得出以下等式:

100.00 / 90.00 = 1.11
then you do
1.11 * 100 = 111.11

如果你想计算你的储蓄百分比,试试这个:

(original_price - deal_price) / original_price * 100.ceil

希望对您有所帮助。

于 2012-06-19T14:13:57.680 回答