sin90°が1.0にならないよドラえも〜ん。
Math.Sin()の引数はラジアンなので、sin90°を求めるために、次のように度からラジアンに変換して渡すのですが、
double s = Math.Sin(90 * Math.PI / 180);
結果は1.0にはなりません。きっと、丸め誤差のせいです。
度を引数にとる三角関数ライブラリでもあればいいんですがね。