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()
not
ReadKey
是的,我刚刚修复了这个问题,但现在它调试了下一个convert.toDouble行,并以错误的格式显示输入字符串!我认为这是错误的。此答案是关于处理您在处理
控制台.ReadKey
控制台.ReadLine
更改后遇到的问题,这是此问题的范围。请接受本问题范围内的适当答案。