18/01/27 14:20:38.41 EckHRazm.net
説明のために>>278のプログラムをfloatに戻したものを考えると
(result < 1.732050776f)という比較ではresultが1.732050776fだった場合に
1.732050776は√3未満であるのに合格リストの方に載ってしまうということです
計算上の誤差があるとかdoubleの有効桁数が多いとかでなく
プログラム内の数値の取り扱いに関係なく、実際の紙の上では間違いが起こってほしくないということです
うまく説明できてるかどうかわかりませんが、実行時どの程度誤差を許容できるかは問題ではないんです
結果を見せた時に、どうしてこの値がこっちのリストに載っているわけ? 直しておいてくれる?
と言われれば、どうせ境界値付近の値なんてどちらのリストに載っていようと計算誤差もあるしいずれにしても正確とは言えないんですよ
では通じないんです...
≒をどちらに組み込むかを決めておくというのも、結局は事前に求めておく>>276の手法と同じ手間がかかりませんか
要件の数値(実数)が変われば、切り上げか切り下げのどちらであるかも変わってしまいますから
どちらになっているかを確かめなくてはいけないですよね