我需要通过划分两个单独的计数来计算一些%值。我得到了计数值,类是fixnum。但是,虽然我要划分它们,但无论计数值是多少,它都显示0,
<% dueTask = 12 %>
<% aT = 16 %>
<%= (dueTask/aT)*.to_f %>
此处最后的结果显示为0.
答案 0 :(得分:4)
您可以使用两条不同的行来获取实际值。
<% dueTask = 12 %>
<% aT = 16 %>
<% result = dueTask/aT.to_f %>
<%= result %>
在IRB中,您可以通过选中以下内容获取值:
dueTask = 12
aT = 16
dueTask/aT.to_f
但是当您必须在HTML中显示结果时,此技术可能无效。变量属于Fixnum类型(您可以通过IRB shell中的以下命令进行检查)
dueTask.class
输出
#=> Fixnum
答案 1 :(得分:1)
你应该在分裂之前将它们转换为浮动:
(dueTask.to_f/aT.to_f)
否则你只得到除法的整数部分,在这种情况下是0
。
答案 2 :(得分:1)
你这样做的方式是除了整数,所以结果是一个整数。即使将其转换为浮点数,也只需转换结果(在这种情况下为0)。
因此,您需要将两个整数中的至少一个转换为浮点数:
<% dueTask = 12 %>
<% aT = 16 %>
<%= (dueTask.to_f/aT) %>
答案 3 :(得分:1)
现在你正在得到该分区0
的正确答案,因为你正在划分2个作为整数的数字,因此你会得到一个整数答案。
要从分部获得十进制答案,您需要将它们转换为float,然后进行除法。
dueTask.to_f/aT.to_f
您的代码最终会像这样:
<% dueTask = 12 %>
<% aT = 16 %>
<%= (dueTask.to_f/aT.to_f) %>