17
四捨五入したパーセンテージを合計すると100%になる方法
float数値で表された以下の4つのパーセンテージを検討してください。 13.626332% 47.989636% 9.596008% 28.788024% ----------- 100.000000% これらの割合を整数で表す必要があります。単純にを使用Math.round()すると、合計101%になります。 14 + 48 + 10 + 29 = 101 を使用parseInt()すると、合計97%になります。 13 + 47 + 9 + 28 = 97 合計として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% …