10を1:1:1で小数2桁に配分する
入力と設定
合計: 10 / 比率: 1 1 1 / 小数桁: 2
期待する結果
3.34 / 3.33 / 3.33 合計: 10.00 / 同順位の端数は先頭へ
合計を複数の比率に合わせて配分します。小数桁を指定し、端数を調整して配分の合計を一致させ、結果をTXT・JSONでコピー・保存できます。
合計と比率は半角の0以上の数、小数部は12桁まで、各64文字・10の18乗までです。比率を改行・空白・タブで区切り、2〜1,000個入力します。少なくとも1個を0より大きくしてください。符号・指数・カンマは使えません。
小数桁は0〜12。合計を指定桁で正確に表せない場合はエラーにします。比率入力はUTF-8で100,000バイト、TXT・JSONは各250,000バイトまで。入力と結果は保存・送信しません。
比率に応じて端数を配分し、表示額の合計を元の合計に一致させます。
「この例を試す」を押すと、上の入力と設定が例の内容に切り替わり、処理を実行します。「元の入力へ戻す」は1回ごとに直前の入力と設定を復元します。複数の例を試した場合は、戻す操作を繰り返すと最初の入力へ戻れます。ページを閉じるとこの履歴は失われます。
合計: 10 / 比率: 1 1 1 / 小数桁: 2
3.34 / 3.33 / 3.33 合計: 10.00 / 同順位の端数は先頭へ
合計: 100 / 比率: 0 1 3 / 小数桁: 0
0 / 25 / 75 合計: 100
指定桁でいったん切り捨て、残った最小単位を剰余が大きい順に配ります。同じ剰余なら入力順を優先するため、最初の例は先頭が0.01多くなります。単純な等分額の丸めとは異なり、表示合計は元の合計に一致します。
比率は空白・改行区切りで2〜1000項目、0以上、全項目0は無効です。小数桁は0〜12。合計が指定桁で表せない場合は、自動丸めせずエラーにします。比率入力は100,000バイトまで、各数値は64文字・小数部12桁・絶対値10¹⁸以下です。税・手数料や配分の妥当性は判定しません。
検証根拠: 既存calculate関数で最大剰余法、同順位の入力順、重み0、合計の一致、指定桁と合計の不整合の拒否を確認。JSONと保存結果を照合します。
合計を比率の合計で割り、各比率に比例する配分を求めます。例の合計100、比率2・3・5では20.00・30.00・50.00です。比率が0の項目は配分も0になります。
まず指定した小数桁の単位で各配分を切り捨て、残った単位を、割り算の余りが大きい項目から1単位ずつ割り当てます。余りが同じ場合は入力順を優先します。これを最大剰余法と呼びます。
合計10、比率1・1・1、小数2桁なら3.34・3.33・3.33になり、合計は10.00です。最初の項目が0.01多いのは同率の余りを入力順で処理するためです。入力順を変えると端数の割当先も変わる場合があります。
合計は丸めません。たとえば10.005を小数2桁で配分する場合はエラーになります。3桁以上を選んでください。小数0桁なら整数単位、2桁なら0.01単位、12桁なら0.000000000001単位です。
0以上の合計、0以上の小数比率を扱います。負数・指数・百分率記号や比率のコロン区切りは使いません。比率は重みなので、合計が100である必要はありません。すべて0の比率は、合計が0でもエラーにします。
内部は整数で計算し、結果を浮動小数点数に変えて丸めません。TXTは合計・小数桁・各比率の配分・配分合計、JSONはこれらと最大剰余法・入力順の優先・追加1単位の有無を含みます。数値は文字列で保持し、全項目を省略せず出力します。UTF-8でBOMや末尾改行は追加しません。
入力や小数桁を変えると計算中の処理と古い結果を取り消します。中断は入力を残し、リセットは合計・比率・結果を消して小数桁を保持します。
指定桁の単位で切り捨てた後、余りの大きい順に1単位ずつ割り当てます。同じ余りなら入力順を優先します。
はい。0の配分は0になります。少なくとも1個の比率は0より大きくする必要があります。入力の小数部は12桁までです。
成功時は指定桁で元の合計と正確に一致します。元の合計を指定桁で表せない場合は丸めずエラーにします。
ツール名と公開URLだけを共有します。入力した内容や処理結果は含まれません。
残したい内容は、先に保管してください。このツールの入力内容・結果は自動保存されません。ページの更新・終了や、入力を消す操作・リセットで失われる場合があります。
お気に入り・表示言語は作業データとは別に保存され、サイトデータの削除で失われる場合があります。端末に保存済みのファイルは、ツールのリセットやサイトデータの削除では消えません。