C# BMI计算器使用方法
我正试图编写一些代码,用一种方法计算你的体重指数 这是我的代码:C# BMI计算器使用方法,c#,C#,我正试图编写一些代码,用一种方法计算你的体重指数 这是我的代码: static void Main(string[] args) { double weight,height; Console.WriteLine("pls enter your weight:"); weight = Convert.ToDouble(Console.ReadKey()); Console.WriteLine("pls enter you
static void Main(string[] args)
{
double weight,height;
Console.WriteLine("pls enter your weight:");
weight = Convert.ToDouble(Console.ReadKey());
Console.WriteLine("pls enter you height: ");
height = Convert.ToDouble(Console.ReadKey());
BMICalculator(weight, height);
Console.ReadKey();
}
static public void BMICalculator(double a, double b)
{
double BMI = a / (b * b);
BMI = Math.Round(BMI, 2);
Console.WriteLine("BMI: {0} ", BMI);
}
我原以为这会奏效,但当我启动控制台时,只要我写下一个数字,它就会调试这一行:Console.WriteLine(“请输入您的体重:”)代码>并说:
无法将System.ConsoleKeyInfo转换为类型“System.IConvertible”
如何修复此问题?如@juharr评论使用.ReadLine()而不是.ReadKey()
static void Main(字符串[]args)
{
控制台。写线(“请输入您的体重:”;
//在此处使用逗号“,”而不是圆点“:80,4
var-weight=Convert.ToDouble(Console.ReadLine());
控制台。写线(“请输入您的身高:”;
//这里也一样
var height=Convert.ToDouble(Console.ReadLine());
体重指数计算器(体重、身高);
Console.ReadLine();
}
公用静态空分计算器(双a、双b)
{
双倍bmi=a/(b*b);
bmi=数学圆(bmi,2);
WriteLine(“BMI:{0}”,BMI);
}
我编辑了您的代码,这个代码非常有效
static void Main(string[] args)
{
double weight, height;
Console.WriteLine("pls enter your weight:");
weight = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("pls enter you height: ");
height = Convert.ToDouble(Console.ReadLine());
BMICalculator(weight, height);
Console.ReadKey();
}
static public void BMICalculator(double a, double b)
{
double BMI = a / (b * b);
BMI = Math.Round(BMI, 2);
Console.WriteLine("BMI: {0} ", BMI);
}
好的,我知道答案了。我只是在输入我的身高时用了点而不是逗号,这就造成了问题。我只是有点盲目。感谢你浪费了一点时间 你应该使用Console.ReadLine()
notReadKey
是的,我刚刚修复了这个问题,但现在它调试了下一个convert.toDouble行,并以错误的格式显示输入字符串!我认为这是错误的。此答案是关于处理您在处理控制台.ReadKey
到控制台.ReadLine
更改后遇到的问题,这是此问题的范围。请接受本问题范围内的适当答案。