C#Math.Acos如何防止NaN

Osb*_*oto 5 c# math

我正在尝试制作一个代码来回答包含Acos"Cos -1(A)" 的数学函数,其中A是双-10.0000 <= A <= 10.0000,我在该范围内尝试了几个数字,并且大多数那些给我一个NaN作为返回,使所有的操作失败.

编辑:正如文档所说,Math.Acos是我把一个数字超出范围-1 <= d <= 1将返回一个NaN,我试图制作一个相同的功能,一步一步允许那些价值观.

Smi*_*Smi 10

正如MSDN所说,Math.Acos函数的参数必须在范围内[-1,1].否则,结果将是NaN.


Joh*_*lla 5

你期望它应该为这些值返回一些东西是不正确的.

反余弦函数回答了"这个余弦的角度是多少?"的问题.但是没有值可以给余弦函数产生小于-1或大于1的结果.我们说它的"范围是[-1,1]".

由于没有超出此范围的余弦值的角度,因此当您要求时,不可能给您一个角度Acos.所以相反它给你答案NaN.

文档也说明了Math.Acos这一点:

参数:

d :( System.Double)表示余弦的数字,其中d必须大于或等于-1,但小于或等于1.


Ode*_*ded 2

快速浏览一下文档就会发现该参数的值应该是:

表示余弦的数字,其中 d 必须大于或等于 -1,但小于或等于 1。