首页 > 解决方案 > CS0029 无法将类型“double”隐式转换为“bool”

问题描述

对于学校作业,我必须编写一个程序,该程序计算直角三角形的面积。你得到了三个方面。所以我想用毕达哥拉斯来确定底是什么,高度是多少。每次我通过赋值输入此内容时,我都会得到 CS0029 CS0029 无法将类型“double”隐式转换为“bool”。有人有想法吗?

class Program
{
    static void Main(string[] args)
    {
      
       
        void Opp(double D, double E,out double O)
        {               
         O = (D * E / 2);               
        }
        void Pyth (double F, double G, out double H)
        {
            H = Math.Sqrt(Math.Pow(F, 2) + Math.Pow(G, 2));
        }
        Console.WriteLine("Geef de waarde van driehoek 1 in: ");
        Console.WriteLine("Zijde a");
        double A1 = double.Parse(Console.ReadLine());

        Console.WriteLine("Zijde b");
        double B1 = double.Parse(Console.ReadLine());

        Console.WriteLine("Zijde c");
        double C1 = double.Parse(Console.ReadLine());

        double DH1;
        double PA1 ;
        double PB1;
        double PC1;
        double DH2;
        double P2;

        Pyth(A1, B1, out PC1);
        Pyth(A1, C1, out PB1);
        Pyth(C1, B1, out PA1);

        if (C1 = PC1)
        {
            Opp(A1, B1, out DH1);
            Console.WriteLine("Oppervlakte driehoek 1 is: " + DH1 + " cm²");
        }
        else if (B1 = PB1)
        {
            Opp(A1, C1, out DH1);
            Console.WriteLine("Oppervlakte driehoek 1 is: " + DH1 + " cm²");
        }
        else if (A1 = PA1) {
            Opp(C1, B1, out DH1);
            Console.WriteLine("Oppervlakte driehoek 1 is: " + DH1 + " cm²");
        }
        else { Console.WriteLine(" error"); }


        Opp(A1,B1,out DH1);
        Console.WriteLine("de oppervlakte van driehoek 1 is " + DH1 + "cm²");

        double pyth = Math.Sqrt(Math.Pow(A1, 2) + Math.Pow(B1, 2));
        Console.WriteLine("controle");
        Console.ReadLine();
    }
}

}

标签: c#visual-studio

解决方案


您必须更正您的 if 语句。在 c# 中比较 2 个元素需要比较运算符 (==) 所以像这样更正它们

if (C1 == PC1)
{
   //DoStuffHere
}

推荐阅读