我正在尝试执行一个看起来像我必须在视图中的计算。
在视图中我有
<% for post in @user.posts %>
<%= post.tasks.count / @projects.tasks.count %>
<% end %>
我正在尝试显示百分比....当我放置&lt;%= post.tasks.count%&gt;它本身显示2和&lt;%= @ projects.tasks.count%&gt;它显示4。
但是当我尝试做&lt;%= post.tasks.count / @ projects.tasks.count%&gt;它显示0不是.50或1/2。
我在视图而不是控制器中执行此逻辑的原因是我想显示for循环的每次迭代的动态百分比
答案 0 :(得分:6)
你得到零的原因是两个数字都是整数,所以它正在进行整数除法。如果你将第一个转换为浮点数,那么你将得到一个浮点数作为结果。
如果要将数字格式化为百分比,您还需要使用number_to_percentage
帮助程序。所以你的视图代码看起来像这样:
<%= number_to_percentage( post.tasks.count.to_f / @projects.tasks.count ) %>
并在您的视图中生成输出50%
。如果需要进一步自定义,也可以为该帮助程序指定精度和一些格式选项。
答案 1 :(得分:4)
整数运算产生整数结果。尝试:
<%= post.tasks.count.to_f / @projects.tasks.count %>
要控制显示精度等,您可能需要以下内容:
<%= "%4.2f" % (post.tasks.count.to_f / @projects.tasks.count) %>