回答編集履歴

1 別案の検討

pepperleaf

pepperleaf score 3981

2018/05/26 17:52  投稿

既に理解されているようですが、浮動小数点の場合、計算誤差があるので、常に合計が 1.0 になるとは限りません。良く知られている事として、 0.1 を 10回加算しても 1.0 になりません。 (0.1 は二進数で正確に表現できない)
どこで丸めるか、検討すべきと思います。
どこで丸めるか、検討すべきと思います。
[追記]
ある程度の有限桁と割り切るならば、分母を十分に大きな整数とし、分子も整数とすれば、丸め誤差が無くなる(?)と思います。計算上の端数は、僅かなので、適当に振り分けるという方法は、解決になるでしょうか。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る