10/02/25 21:31:36
>>292
参考になるかどうかわからないけど、過去ログからコピペ。
857 :826 :2008/03/02(日) 20:57:07
SimpleRoundToの個人的まとめ。
正解かどうかわからないので、必要な人は追試してください。
・SimpleRoundToは意図した結果が得られない場合(ADigit<0 ?)がある。
・Truncは引数に変数を使った式を与えると意図した結果が得られない場合がある。
○a := 10; Trunc(0.25 * a + 0.5) / a;
○Trunc(0.25 / 0.1 + 0.5) * 0.1;
×a := 0.1; Trunc(0.25 / a + 0.5) * a; //SimpleRoundToの中がこれ
・引数に指定する計算式の結果を一度変数に代入してから、Truncに与えれば大丈夫そう。
○a := 0.1; b := 0.25 / a + 0.5; Trunc(b) * a;
・Floorも内部でTruncを使ってるので同様。
・Ceilは内部でTruncを使っているものの大丈夫そう??