You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编程入门:C# BMI控制台程序CS0019错误求助

解决C#错误CS0019:运算符'^'不能应用于double类型操作数

问题根源

在C#中,^是按位异或运算符,仅用于整数类型的位操作,不能用来计算数值的幂次方。你试图用它计算height的2.5次方,这就触发了CS0019编译错误。

另外你的代码还有一个逻辑错误:输入身高时把值赋给了weight变量,输入体重时赋给了height变量,这会导致BMI计算结果完全错误。

修复方案

  1. 替换幂运算方式:使用Math.Pow()方法计算次方,该方法支持double类型的底数和指数,语法为Math.Pow(底数, 指数)。
  2. 修正变量赋值错误:交换身高和体重的赋值语句,确保数据对应正确。

修正后的代码

namespace BMI_o_BMR
{
    internal class Program
    {
        static void Main(string[] args)
        {
            double weight, height, bmi, bmr;
            
            string gender; // Female f = kvinna, male m = man

            Console.WriteLine("Vi ska räkna ut ditt BMI och BMR");

            Console.WriteLine("Write your height");
            height = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Write Your weight");
            weight = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Write your age");
            int age = Convert.ToInt32(Console.ReadLine());
            if (height >= 0.50 && height <= 2.20 && weight >= 10 && weight <= 250 && age >= 18 && age <= 70)
            {
                bmi = (weight * 1.3) / Math.Pow(height, 2.5);
                Console.WriteLine(bmi);
            }
            Console.WriteLine("choose your Gender M for Male or F for Female");
        }
    }
}

额外建议

  • 输入合法性处理:当前代码未处理用户输入非数字的情况,建议使用double.TryParse或int.TryParse替代Convert类方法,避免程序因非法输入崩溃。
  • 标准BMI参考:通常标准BMI计算公式为体重(kg) / (身高(m) * 身高(m)),如果你的公式是课程要求的特殊版本可忽略此提示。

内容的提问来源于stack exchange,提问作者KimAlmighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:31:00