猿问

通过组合框计算多次转化

所以,下面是我所得到的。它一直告诉我我无法在小数或双精度上使用数学运算符。不幸的是,这些是我必须使用的。我想要做的是将长度测量从英制转换为公制。我已经查看了许多其他与此相关的问题,并且能够弄清楚部分代码以及如何让它让我做一个“if”语句。但我就是想不通它的数学部分。谁能指出我正确的方向?


public partial class Form1 : Form

{


    string conversions;

    decimal meter, feet, centimeter, inches, miles, kilometers;



    public Form1()

    {

        InitializeComponent();


    }


    private void btnCalculate_Click(object sender, EventArgs e)

    {

        calculateConversions();



    }


    private void Form1_Load(object sender, EventArgs e)

    {

        cbConversion.SelectedText = "Miles to Kilometers";

        string[] Conversion = new string[] { "Miles to Kilometers",

            "Kilometers to Miles",

            "Feet to Meters",

            "Meters to Feet",

            "Inches to Centimeters",

            "Centermeters to Inches" };

        { }

        for (int i = 0; i < Conversion.Length; i++)

        {

            cbConversion.Items.Add(Convert.ToString(Conversion[i]));

        }

        miles = 0m;

        kilometers = 0m;

        feet = 0m;

        meter = 0m;

        inches = 0m;

        centimeter = 0m;




    }



         private void cbConversion_SelectedIndexChanged(object sender, EventArgs e)

    {

        conversions = Convert.ToString(cbConversion.SelectedItem);


        IList<string> lstString = new List<string>();

        lstString.Add("Miles:");

        lstString.Add("Kilometers:");

        lstString.Add("Feet:");

        lstString.Add("Meters:");

        lstString.Add("Inches:");

        lstString.Add("Centimeters:");


        label2.Text = lstString[cbConversion.SelectedIndex];


        IList<string> lstStringTwo = new List<string>();

        lstStringTwo.Add("Kilometers:");

        lstStringTwo.Add("Miles:");

        lstStringTwo.Add("Meters:");

        lstStringTwo.Add("Feet:");

        lstStringTwo.Add("Centimeters:");

        lstStringTwo.Add("Inches:");

        label3.Text = lstStringTwo[cbConversion.SelectedIndex];


    }


我什至翻阅了我的书,但无法弄清楚(这是一项家庭作业)我拥有的 GUI。它是通过组合框选择的,输入的文本被计算到转换中。一切正常,但数学

慕桂英546537
浏览 103回答 2
2回答

一只斗牛犬

我cbConversion.SelectedIndex = 0;在 form1_load 中添加以选择组合框的第一个索引,然后在calculateConversions()我在 textoutput.text 中输出的每个条件下使用函数。然后剩下的你可以做 else if 并研究其他转换公式。我使用cbConversion.SelectedItem.ToString()了这样您就可以从组合框中获取项目文本以进行比较。你可以试试这个string conversions;&nbsp; &nbsp; decimal meter, feet, centimeter, inches, miles, kilometers;&nbsp; &nbsp; private void btnCalculate_Click(object sender, EventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; calculateConversions();&nbsp; &nbsp; }&nbsp; &nbsp; public Form1()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; InitializeComponent();&nbsp; &nbsp; }&nbsp; &nbsp; private void Form1_Load(object sender, EventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; cbConversion.SelectedText = "Miles to Kilometers";&nbsp; &nbsp; &nbsp; &nbsp; string[] Conversion = new string[] { "Miles to Kilometers",&nbsp; &nbsp; &nbsp; &nbsp; "Kilometers to Miles",&nbsp; &nbsp; &nbsp; &nbsp; "Feet to Meters",&nbsp; &nbsp; &nbsp; &nbsp; "Meters to Feet",&nbsp; &nbsp; &nbsp; &nbsp; "Inches to Centimeters",&nbsp; &nbsp; &nbsp; &nbsp; "Centermeters to Inches" };&nbsp; &nbsp; &nbsp; &nbsp; { }&nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i < Conversion.Length; i++)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cbConversion.Items.Add(Convert.ToString(Conversion[i]));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; miles = 0m;&nbsp; &nbsp; &nbsp; &nbsp; kilometers = 0m;&nbsp; &nbsp; &nbsp; &nbsp; feet = 0m;&nbsp; &nbsp; &nbsp; &nbsp; meter = 0m;&nbsp; &nbsp; &nbsp; &nbsp; inches = 0m;&nbsp; &nbsp; &nbsp; &nbsp; centimeter = 0m;&nbsp; &nbsp; &nbsp; &nbsp; cbConversion.SelectedIndex = 0;&nbsp; &nbsp; }&nbsp; &nbsp; private void cbConversion_SelectedIndexChanged(object sender, EventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; conversions = Convert.ToString(cbConversion.SelectedItem);&nbsp; &nbsp; &nbsp; &nbsp; IList<string> lstString = new List<string>();&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Miles:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Kilometers:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Feet:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Meters:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Inches:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Centimeters:");&nbsp; &nbsp; &nbsp; &nbsp; label2.Text = lstString[cbConversion.SelectedIndex];&nbsp; &nbsp; &nbsp; &nbsp; IList<string> lstStringTwo = new List<string>();&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Kilometers:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Miles:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Meters:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Feet:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Centimeters:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Inches:");&nbsp; &nbsp; &nbsp; &nbsp; label3.Text = lstStringTwo[cbConversion.SelectedIndex];&nbsp; &nbsp; }&nbsp; &nbsp; private void calculateConversions()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; decimal input = Convert.ToDecimal(txtInput.Text);&nbsp; &nbsp; &nbsp; &nbsp; decimal mileToKM = Convert.ToDecimal(1.609344);&nbsp; &nbsp; &nbsp; &nbsp; if (cbConversion.SelectedItem.ToString() == "Miles to Kilometers")&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decimal miles = (input * mileToKM);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtOutput.Text = miles.ToString();&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }输出

墨色风雨

这是我现在使用的代码private void Form1_Load(object sender, EventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; cbConversion.SelectedText = "Miles to Kilometers";&nbsp; &nbsp; &nbsp; &nbsp; string[] Conversion = new string[] { "Miles to Kilometers",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Kilometers to Miles",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Feet to Meters",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Meters to Feet",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Inches to Centimeters",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Centermeters to Inches" };&nbsp; &nbsp; &nbsp; &nbsp; { }&nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i < Conversion.Length; i++)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cbConversion.Items.Add(Convert.ToString(Conversion[i]));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; miles = 0m;&nbsp; &nbsp; &nbsp; &nbsp; kilometers = 0m;&nbsp; &nbsp; &nbsp; &nbsp; feet = 0m;&nbsp; &nbsp; &nbsp; &nbsp; meter = 0m;&nbsp; &nbsp; &nbsp; &nbsp; inches = 0m;&nbsp; &nbsp; &nbsp; &nbsp; centimeter = 0m;&nbsp; &nbsp; &nbsp; &nbsp; cbConversion.SelectedIndex = 0;&nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private void cbConversion_SelectedIndexChanged(object sender, EventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; conversions = Convert.ToString(cbConversion.SelectedItem);&nbsp; &nbsp; &nbsp; &nbsp; IList<string> lstString = new List<string>();&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Miles:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Kilometers:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Feet:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Meters:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Inches:");&nbsp; &nbsp; &nbsp; &nbsp; lstString.Add("Centimeters:");&nbsp; &nbsp; &nbsp; &nbsp; label2.Text = lstString[cbConversion.SelectedIndex];&nbsp; &nbsp; &nbsp; &nbsp; IList<string> lstStringTwo = new List<string>();&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Kilometers:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Miles:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Meters:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Feet:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Centimeters:");&nbsp; &nbsp; &nbsp; &nbsp; lstStringTwo.Add("Inches:");&nbsp; &nbsp; &nbsp; &nbsp; label3.Text = lstStringTwo[cbConversion.SelectedIndex];&nbsp; &nbsp; }&nbsp; &nbsp; private void calculateConversions()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; decimal input = Convert.ToDecimal(txtInput.Text);&nbsp; &nbsp; &nbsp; &nbsp; decimal mileToKM = Convert.ToDecimal(1.6093);&nbsp; &nbsp; &nbsp; &nbsp; decimal kMToMile = Convert.ToDecimal(0.6214);&nbsp; &nbsp; &nbsp; &nbsp; decimal ftToM = Convert.ToDecimal(0.3048);&nbsp; &nbsp; &nbsp; &nbsp; decimal mToFt = Convert.ToDecimal(3.2808);&nbsp; &nbsp; &nbsp; &nbsp; decimal inToCm = Convert.ToDecimal(2.54);&nbsp; &nbsp; &nbsp; &nbsp; decimal cmToIn = Convert.ToDecimal(0.3937);&nbsp; &nbsp; &nbsp; &nbsp; if (cbConversion.SelectedText.ToString() == "Miles to Kilometers")&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decimal miles = (input * mileToKM);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtOutput.Text = miles.ToString();&nbsp; &nbsp; &nbsp; &nbsp; }
随时随地看视频慕课网APP
我要回答