【发布时间】:2019-02-28 09:28:44
【问题描述】:
当我想对价格求和然后添加增值税时,我总是得到错误的金额。 我有以下情况:
假设我有 4 种产品,我希望它们在发票上显示。每个产品的价格都是2.50。
我有以下代码:
@products = Product.find([1,2,3,4])
在我的发票上:
@products.each do |product|
%p
Price without VAT:
= number_to_currency(product.price) --> Gives € 2,50
%p
Price with 21% VAT:
= number_to_currency(product.price / 100 * 121) --> Gives € 3,03
显示如下:
- 不含增值税的价格:2.50 欧元
- 含 21% 增值税的价格:3.03 欧元
现在我想添加一个总行。我尝试过这样的事情:
- sum = @products.sum( &:price ) --> Gives 10
%p
Total with 21% VAT:
= number_to_currency(sum / 100 * 121 ) --> Gives € 12,10 instead of € 12,12
我尝试过,总价格包括增值税 12.10 欧元,而不是 12.12 欧元。 (4 x 3.03 欧元 = 12.12 欧元)
我的数据库中的价格为:
t.decimal "price"
价格存储为 2.5
谁能帮我解决这个问题?
【问题讨论】:
-
你的数学错了..应该是
((product.price * 121) / 100)。没有? -
不,添加增值税应该是:价格 / 100 * 121。(2.50 / 100)* 121 = 3,025 -> € 3,03
-
当实际价格为 100 时,我读起来好像它需要 121 加增值税,对吗?
-
成本为 2.50,不含增值税。加上 21% 的增值税是 3.03
-
暂时忘记你的号码。假设你有 100 个,加上 21% 的增值税,现在这个数字是多少?
标签: ruby-on-rails sum decimal numeric