在 C# 中编写具有复数指数的方程式时遇到问题
Having trouble writing an equation with complex exponents in C#
我已经做了一些研究,但似乎找不到我需要的东西。这可能是一个简单的修复,但我很难过。我正在尝试用 c# 编写和方程,它为我返回一个 NaN 值,我不知道为什么。
我在下面发布了我的代码以及原始方程式的图片。任何帮助将不胜感激,我不相信我输入的方程式正确。
static void Main(string[] args)
{
int playerLevel;
double experience = 1;
WriteLine("Please Enter Your Current Level: ");
playerLevel = Convert.ToInt32(ReadLine());
try
{
experience = 1 / 8 * (Math.Pow(playerLevel, 2) - playerLevel + 600 * ((Math.Pow(2, Convert.ToDouble(playerLevel/7)) - Math.Pow(2, Convert.ToDouble(1/7))) / (Math.Pow(2, Convert.ToDouble(1/7)) - 1)));
WriteLine("Your current Experience is: " + experience);
}
catch (Exception err)
{
WriteLine(err.Message);
throw;
}
ReadKey();
}
Original Equation
此代码是罪魁祸首:
/ (Math.Pow(2, Convert.ToDouble(1 / 7)) - 1)
1/7
为 0。
- 2^0 是 1
- 1 - 1 为 0
- 你除以零,得到 NaN。
考虑只写 1.0/7.0
而不是 Convert.ToDouble(1 / 7)
可能让您感到困惑的部分是 1/7
是 零 因为它是整数除法。 1
是一个整数,7
是一个整数,所以 /
将使用整数除法,得到 0
.
在所有数字后添加“.0”或“d”以表明它们不是整数。
例如,写“1.0”而不是“1”。
我已经做了一些研究,但似乎找不到我需要的东西。这可能是一个简单的修复,但我很难过。我正在尝试用 c# 编写和方程,它为我返回一个 NaN 值,我不知道为什么。 我在下面发布了我的代码以及原始方程式的图片。任何帮助将不胜感激,我不相信我输入的方程式正确。
static void Main(string[] args)
{
int playerLevel;
double experience = 1;
WriteLine("Please Enter Your Current Level: ");
playerLevel = Convert.ToInt32(ReadLine());
try
{
experience = 1 / 8 * (Math.Pow(playerLevel, 2) - playerLevel + 600 * ((Math.Pow(2, Convert.ToDouble(playerLevel/7)) - Math.Pow(2, Convert.ToDouble(1/7))) / (Math.Pow(2, Convert.ToDouble(1/7)) - 1)));
WriteLine("Your current Experience is: " + experience);
}
catch (Exception err)
{
WriteLine(err.Message);
throw;
}
ReadKey();
}
Original Equation
此代码是罪魁祸首:
/ (Math.Pow(2, Convert.ToDouble(1 / 7)) - 1)
1/7
为 0。- 2^0 是 1
- 1 - 1 为 0
- 你除以零,得到 NaN。
考虑只写 1.0/7.0
而不是 Convert.ToDouble(1 / 7)
可能让您感到困惑的部分是 1/7
是 零 因为它是整数除法。 1
是一个整数,7
是一个整数,所以 /
将使用整数除法,得到 0
.
在所有数字后添加“.0”或“d”以表明它们不是整数。 例如,写“1.0”而不是“1”。