相关疑难解决方法(0)

如何使舍入百分比加起来达到100%

考虑下面的四个百分比,表示为float数字:

    13.626332%
    47.989636%
     9.596008%
    28.788024%
   -----------
   100.000000%
Run Code Online (Sandbox Code Playgroud)

我需要将这些百分比表示为整数.如果我只是使用Math.round(),我最终总共有101%.

14 + 48 + 10 + 29 = 101
Run Code Online (Sandbox Code Playgroud)

如果我使用parseInt(),我最终总共有97%.

13 + 47 + 9 + 28 = 97
Run Code Online (Sandbox Code Playgroud)

什么是一个很好的算法来表示任意数量的百分比作为整数,同时仍然保持总计100%?


编辑:在阅读了一些评论和答案后,显然有很多方法可以解决这个问题.

在我看来,为了忠实于数字,"正确"的结果是最小化整体错误的结果,由相对于实际值引入的错误舍入量来定义:

        value  rounded     error               decision
   ----------------------------------------------------
    13.626332       14      2.7%          round up (14)
    47.989636       48      0.0%          round up (48)
     9.596008       10      4.0%    don't round up  (9)
    28.788024       29      2.7%          round up (29)
Run Code Online (Sandbox Code Playgroud)

在平局(3.33,3.33,3.33)的情况下,可以做出任意决定(例如3,4,3).

algorithm math rounding percentage

173
推荐指数
7
解决办法
8万
查看次数

投票百分比计算错误

我已经创建了一个php程序,用户可以在其中投票进行投票,之后,投票结果将只显示百分比,但是我在程序中遇到错误.
我用于百分比计算的代码是
<?php echo round(($num_votes / $total_votes) * 100) ?>

现在如果我们谈论一个样本民意调查结果,假设我们有五个选项
option A - 4 votes
option B - 2 votes
option C - 4 votes
option D - 1 votes
option E - 0 votes
总票数= 11

在这种情况下,百分比结果生成是
option A - 36%
option B - 18%
option C - 36%
option D - 9%
option E - 0%

但百分比总和99%而不是100%.我想要的是总应该是100%
任何帮助将不胜感激
谢谢.

php math percentage

-1
推荐指数
1
解决办法
1634
查看次数

标签 统计

math ×2

percentage ×2

algorithm ×1

php ×1

rounding ×1