【发布时间】:2021-05-10 20:03:35
【问题描述】:
我进行了一些研究,但似乎找不到我需要的东西。这可能很容易解决,但我很难过。我正在尝试用 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();
}
【问题讨论】:
-
使用
1.0/7.0等而不是先进行整数除法然后尝试将其转换为双精度数。 1/7 为零。始终将双打写成双打而不转换。 -
你调试过你的代码,哪一行报错了?
-
我建议您将单线方程拆分为多个较小的计算,并使用一些好的命名变量。这也将使调试更容易。
-
你应该使用中间变量分解这一可怕的一大行,以便能够看到事物以及调试......
标签: c# math visual-studio-2019 equation