小编D.R*_*mer的帖子

C# - 无限数字

我目前正在处理某个程序(在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# numbers nan winforms

2
推荐指数
1
解决办法
107
查看次数

如何检查c ++中的数字是否为4位?

如何检查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等.

有人可以告诉我如何解决它吗?

谢谢!

c++

-2
推荐指数
2
解决办法
5254
查看次数

标签 统计

c# ×1

c++ ×1

nan ×1

numbers ×1

winforms ×1