|
分類:[C#]
visual studio 2013 の C# で作成しています。
余弦定理を用いて三角形の辺と角度(ラジアンではなく度)を計算するプログラムを作っているのですが、 浮動小数のためなのか誤差がでてしまいます。 特に角度の誤差が大きいため困っているのですがどうすればいいでしょうか。
//残りの1辺を計算(理想の結果 ans1 = 4) double a1 = 3.0; double b1 = 5.0; double angle = 60.0;
double c1 = (a1 * a1) + (b1 * b1) - 2 * a1 * b1 * Math.Cos(angle * Math.PI / 180); double ans1 = Math.Sqrt(c1);
Console.Write("{0}\n", ans1); //コンソール出力結果:4.35889894354067
//角度を計算(理想の結果 ans2 = 60) double a2 = 3.0; double b2 = 5.0; double c2 = 4.0;
double rad = Math.Acos(((a2 * a2) + (b2 * b2) - (c2 * c2)) / (2 * a2 * b2)); double ans2 = rad * 180 / Math.PI;
Console.Write("{0}\n", ans2); //コンソール出力結果:53.130102354156
よろしくお願いします。
|