数値範囲を同じ長さのセグメントに分割する必要があります。しかし、どちらの方法がより正確かは判断できません。例えば:
double r1 = 100.0, r2 = 1000.0, r = r2 - r1;
int n = 30;
double[] position = new double[n];
for (int i = 0; i < n; i++)
{
position[i] = r1 + (double)i / n * r;
// position[i] = r1 + i * r / n;
}
(double)int1 / int2 * double
またはについてint1 * double / int2
です。どちらの方法がより正確ですか? どの方法を使用すればよいですか?
アップデート
次のコードは違いを示します。
double r1 = 1000.0, r2 = 100000.0, r = r2 - r1;
int n = 300;
double[] position = new double[n];
for (int i = 0; i < n; i++)
{
double v1 = r1 + (double)i / n * r;
double v2 = position[i] = r1 + i * r / n;
if (v1 != v2)
{
Console.WriteLine(v2 - v1);
}
}