我目前正在处理某个程序(在C#.NET - winforms中),我遇到了以下问题:
我需要计算点(t,f(t))给出:
f(t)= [Sin(t)/ 16*Cos ^ 4(t)] ^(1/3),使得:t:-89.995-> 89.995.(t是实数).
注意:t的值范围为-89.995到89.995.
我使用.NET函数Math.Sin(),Math.Cos(),Math.Pow()进行计算,从弧度到度的转换是正确的.
问题是,对于我放入f(t)的每个t <0,我从上述函数得到NaN(=非数字),当我在标准计算器中计算它时,我得到标准的正确值.
例如:t = -0.9165664,f(t)= -0.1000096,(Taht是正确的结果).但是当我在我的程序中使用.NET函数时,我得到的t = -0.9165664的结果是NaN(=非数字),为什么?它不是一个例子,不是零或类似的东西.
我在程序中使用的代码:
float t = -0.9165664;
float numerator = Math.Sin(t * Math.PI / 180.0f);
float denominator = 16.0f * Math.Pow(Math.Cos(t * Math.PI / 180.0f), 4)
float ft = (float)Math.Pow(numerator / denominator, 1.0f / 3.0f));
Run Code Online (Sandbox Code Playgroud)
注意:我不能将ft的类型加倍.
当我在上面的代码中添加任何t> 0时,它会给出正确的结果.
有人可以解释我有什么不对或建议可行的解决方案吗?
感谢帮助!!!
如何检查c ++中的数字是否为4位数?我试过这段代码:
bool check4(int number)
{
if ((number % 10) && !(number / 10000) && (number / 1000) && (number / 100) && (number / 10))
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
它仅适用于不包含0的数字,如1234,5678等.
有人可以告诉我如何解决它吗?
谢谢!