私は非常に単純なコードを書きました:
public static void Main (string[] args)
{
String str="1,0992748756871115E+41"; //yes, I know that is very large value
Double x=Convert.ToDouble(str);
Double res=Math.Cos(x);
Double resRound=Math.Round(res);
Console.WriteLine("x={0}\nres={1}\nresRound={2}", x, res, resRound);
}
そして、このコードは非常に大きな値のres値を出力します。1,09927487568711E+41
これはMath.Cosの引数と同じです。
これはバグだと思い、Gtk#
.NET Frameworkによってコンパイルされたこのコードを返す値をテストすることにしました。同じ値を返しました!それで、関数cos(x)の意味はから-1
までのセグメントの制限を超えています1
か?どうすれば可能ですか?