我有一个问题,以使民意调查结果完全达到100%

Dee*_*e-M 2 ruby ruby-on-rails

我正在使用ruby开发一个民意调查,但我得到的答案是不正确的,我正在寻找将导致100%的答案,但我的答案有时是101%或99%,我肯定是我的花车的四舍五入但是我可以把它们弄好,因为没有四舍五入的答案就是很长的花车.我的计算结果和显示结果的代码是

> 
   @general_poll_graph_data = generalsortedoptions.collect do |o|
             option = [keys[count],       (((o.poll_votes.count.to_f)/@general_poll.poll_votes.count.to_f)*100).round_to(1)]
            count = count + 1
            option
   end
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 9

我认为问题在于如何在数学中进行舍入.例如,如果你有3个选项,每个选项有1个投票,那么四舍五入到最接近的百分比会给你33%,33%,33%,这当然加起来达到了99%.这是非常正确的.

如果没有捏造数据,就不可能将其加起来恰好100%(即在上述情况下,你可以人为地给出一个选项34%,但这不能代表实际投票.)

我的解决方案:将百分比显示为小数点后1位,不要担心它加起来精确到100%