私はいくつかのフロート操作を行っており、最終的に次の数字になります。
-0.5
-0.4
-0.3000000000000000004
-0.2000000000000000004
-0.1000000000000000003
1.10E-16
0.1
0.2
0.30000000000000000004
0.4
0.5
アルゴリズムは次のとおりです。
var inc:Number = nextMultiple(min, stepSize);
trace(String(inc));
private function nextMultiple(x:Number, y:Number) {
return Math.ceil(x/y)*y;
}
フロートが常にバイトで正確に表現できるとは限らないという事実を理解しています。例: 1/3。ステップサイズが 0.1 であることも知っています。ステップサイズがある場合、どうすれば適切な出力を得ることができますか?
奇妙なことに、この種の問題に遭遇したのは初めてです。多分私はフロートで十分に遊んでいません。