Ruby Divide总是在Rails Axlsx Export中返回Zero

Tom*_*ond 2 ruby-on-rails axlsx

我不能为我的生活弄清楚为什么划分不适用于这个Aslsx出口.我可以添加,减去,复数和模数除法很好,但是当我尝试做answer_number / question_number它总是出现为0.任何想法我做错了什么?

工作吐出answer_number时间question_number:

@survey.questions.each do |question|
        question_number = Choice.where(question_id: question.id).length
        question.answers.each do |answer|
            answer_number = Choice.where(answer_id: answer.id).length
            sheet.add_row [answer_number, question_number, answer_number * question_number]
        end
    end
Run Code Online (Sandbox Code Playgroud)

不起作用 - 吐出0:

@survey.questions.each do |question|
        question_number = Choice.where(question_id: question.id).length
        question.answers.each do |answer|
            answer_number = Choice.where(answer_id: answer.id).length
            sheet.add_row [answer_number, question_number, answer_number / question_number]
        end
    end
Run Code Online (Sandbox Code Playgroud)

我也认为,当数字小于0时,它可能正在进行某种舍入,但这似乎也不起作用(最终目标是获得每个答案的百分比):

@survey.questions.each do |question|
        question_number = Choice.where(question_id: question.id).length
        question.answers.each do |answer|
            answer_number = Choice.where(answer_id: answer.id).length
            sheet.add_row [answer_number, question_number, answer_number / question_number * 100]
        end
    end
Run Code Online (Sandbox Code Playgroud)

Moh*_*ady 5

由于两个数字都是整数,因此ruby正在进行整数除法,忽略剩余的分数,我猜你所有的分区都返回0到1之间的数字,所以答案总是为0,以避免两个数字中的一个应该是像@mtm建议一样浮动,to_f向任一数字添加一个函数