我正在尝试从GUI添加两个复数。我创建了4个文本框 - 其中2个是实数,2个是虚数。我创建了一个输入按钮。因此,当我按Enter键时,它将在MessageBox中显示我的结果。
我需要显示结果的帮助。我需要它以这样的方式显示它:3 + 5i(其中3是实数的总和,5是虚数的总和。我需要" i"显示为好)。我在这部分下面得到一条红线:sum =(" {0} + {1} i",x,y);
编辑:那么,现在我想减去复数。它没有显示减法的结果。是因为我没有减去任何价值吗?
这是我的代码:
private double rPart1; // real number
private double iPart1; // imaginary number
private double rPart2; // real number
private double iPart2; // imaginary number
double x;
double y;
double call;
double r;
string sum;
public string add()
{
rPart1 = Convert.ToDouble(textBoxReal1.Text);
iPart1 = Convert.ToDouble(textBoxImaginary1.Text);
rPart2 = Convert.ToDouble(textBoxReal2.Text);
iPart2 = Convert.ToDouble(textBoxImaginary2.Text);
x = rPart1 + rPart2;
y = iPart1 + iPart2;
sum = ("{0} + {1}i",x ,y);
return sum;
}
public string sub()
{
x = rPart1 - rPart2;
y = iPart1 - iPart2;
subtract = (x + "-" + y + "i");
return subtract;
}
private void buttonEnter_Click(object sender, EventArgs e)
{
sum = add();
subtract = sub();
MessageBox.Show("The addition is: " + sum
+ "\nThe subtraction is: " + subtract);
}
答案 0 :(得分:3)
你需要写:
sum = string.Format("{0} + {1}i", x, y);
顺便说一下。 .Net Framework 4.0及其后续版本具有内置的复数结构:
答案 1 :(得分:0)
您应该使用String.Format
方法:
string result = String.Format ("{0} + {1}i", x, y) ;
答案 2 :(得分:0)
你可以很好地做到这一点。在你的项目中制作一个结构,如:
public struct MyNumber
{
public MyNumber(double rPart1,double iPart1,double rPart2,double iPart2){//Set fields value}
private double rPart1;
private double iPart1;
private double rPart2;
private double iPart2;
public double X { get { return rPart1 + rPart2 ; } }
public double Y { get { return iPart1 + iPart2; } }
public string Sum(string format)
{
return string.Format(format, X, Y);
}
}
并在您的代码中
public string add()
{
MyNumber number=new MyNumber(Convert.ToDouble(textBoxReal1.Text),Convert.ToDouble(textBoxImaginary1.Text),Convert.ToDouble(textBoxReal2.Text),Convert.ToDouble(textBoxImaginary2.Text));
return number.Sum(custom format);
}