好吧,让我改变整个事情并准确显示我想要的输出,对不起解释。
<table class="table table-bordered table-custom table-striped">
<% 0.upto(years).each do |n| %>
<% @value = (((price*quantity)*percentage)/100)+(quantity*price) %>
<tr>
<td width="20%"><%= n %></td>
<td width="20%"><%= ((@value*percentage)/100)+@value %></td>
</tr>
<% end %>
</table>
我正在试图弄清楚如何将@value变量设置为从该循环中的一个calucated获取的新值。
我的输出atm看起来像这样:
0 @value
1 @value
2 @value
但我希望它看起来像这样:
0 @value
1 new_value calculated from ((@value*percentage)/100)+@value
2 new_value2 calculated from ((new_value*percentage)/100)+new_value
我知道这仍然看起来像废话,但我希望我这次试图解释我想做什么; p
感谢。
答案 0 :(得分:0)
在ruby中,您可以使用print variable
打印变量(最后不会添加新行),也可以使用puts添加新行puts variable
。如果您尝试连接字符串,可以print "#{var1} and #{var2}"
。
答案 1 :(得分:0)
我想你想要这样的东西:
<table class="table table-bordered table-custom table-striped">
<% @value = price * quantity %>
<% 0.upto(years).each do |n| %>
<% @value += ((@value * percentage)) / 100 %>
<tr>
<td width="20%"><%= n %></td>
<td width="20%"><%= @value %></td>
</tr>
<% end %>
</table>
当每年增加一个固定百分比时,这将使您的价格增加(或减少)。
答案 2 :(得分:0)
使用reduce而不是每个都积累中间值。
<table class="table table-bordered table-custom table-striped">
<% 0.upto(years).reduce(price * quantity) do |value, n| %>
<tr>
<td width="20%"><%= n %></td>
<td width="20%"><%= value %></td>
</tr>
<% value += ((value * percentage)) / 100 %>
<% end %>
</table>