c# - 通过组合框计算多次转化
问题描述
所以,下面是我所得到的。它一直告诉我我无法在小数或双精度上使用数学运算符。不幸的是,这些是我必须使用的。我想要做的是将长度测量从英制转换为公制。我已经查看了许多其他与此相关的问题,并且能够弄清楚部分代码以及如何让它让我做一个“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];
}
private void calculateConversions()
{
decimal input = Convert.ToDecimal(txtInput.Text);
decimal output = Convert.ToDecimal(txtOutput.Text);
if (cbConversion.SelectedText == "Miles to Kilometers")
{
decimal miles = Convert.ToDecimal("");
}
我什至翻阅了我的书,但无法弄清楚(这是一项家庭作业)我拥有的 GUI。它是通过组合框选择的,输入的文本被计算到转换中。一切正常,但数学
解决方案
我cbConversion.SelectedIndex = 0;
在 form1_load 中添加以选择组合框的第一个索引,然后在calculateConversions()
我在 textoutput.text 中输出的每个条件下使用函数。
然后剩下的你可以做 else if 并研究其他转换公式。
我使用cbConversion.SelectedItem.ToString()
了这样您就可以从组合框中获取项目文本以进行比较。
你可以试试这个
string conversions;
decimal meter, feet, centimeter, inches, miles, kilometers;
private void btnCalculate_Click(object sender, EventArgs e)
{
calculateConversions();
}
public Form1()
{
InitializeComponent();
}
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;
cbConversion.SelectedIndex = 0;
}
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];
}
private void calculateConversions()
{
decimal input = Convert.ToDecimal(txtInput.Text);
decimal mileToKM = Convert.ToDecimal(1.609344);
if (cbConversion.SelectedItem.ToString() == "Miles to Kilometers")
{
decimal miles = (input * mileToKM);
txtOutput.Text = miles.ToString();
}
}
推荐阅读
- python - 使用 extract_msg 时如何保持电子邮件中的换行符?
- reactjs - 当用户点击返回按钮时反应原生刷新内容 - 使用 Hooks
- java - 如何在 Java 中找到一年中的总周数?
- sql - 有没有办法同时有一个不同的子句和 SUM 子句?
- html - R flexdashboard中根本不显示图标
- c# - SelectListItem 为空,如果方法内的语句显示它被填充
- javascript - For 循环不起作用 -> google sheet to google form 自动数据输入
- wagtail - 通过 Snippet 使用 Wagtail Collections for Images,你如何遍历它们以在模板中显示?
- asp.net - ASP.NET 角色如何与授权一起使用?
- node.js - Azure 文件 - 从托管在 Azure 上的我的 Node 应用程序下载无法正常工作