2011-02-24 75 views
2

我试图计算一个分数(以百分比为基础)20个问题中有多少个答案正确,我正在做的是检查每个答案回答键,然后根据是否正确将1或0分配给变量,1对于正确的0为不正确。我举一个例子:试图计算一个测验得分的百分比,Rails 3.0.3

<% if result.q01 == @answer01 %> 
<% @score01 = 1 %> 
<% else %> 
<% @score01 = 0 %> 
<% end %> 

它正确分配变量,但是当我做数学题,要弄清楚它是正确的百分比。我做数学题是(在这个例子中,我将只添加了第2个拿下了答案:

<% @grade = @score01 + @score02 %> 
<% @finalgrade = @grade/20 * 100 %> 

但最终的成绩不会当我在计算器上添加了它的报告一0,而不是像加起来10(在这种情况下@grade加起来为2)。任何想法,为什么它的行为这样?我难倒。谢谢!

+0

,因为它先乘以20 * 100,然后用20000(20 * 100的结果)除等级。 – reggie 2011-02-24 16:34:50

+0

可能重复http://stackoverflow.com/questions/4311190/division-to-percentage-in-ruby-on-rails – reggie 2011-02-24 16:42:00

回答

3

首先,你需要用你的@grade/20语句在括号中。另外,你需要将其中一个数字转换为浮点数,否则总是得到0,除非@grade为20(将一个整数除以另一个整数将不会返回除整数之外的任何数字)

<% @finalgrade = (@grade/20.0) * 100 %> 
+0

谢谢,这是(与@ grade.to_f一起)我非常感谢! – WaldoR 2011-02-24 16:54:34