我为iPhone制作了一个小应用程序,可以添加两个复杂的数字(我刚开始学习)。
在程序中我可以在文本字段中输入一些数字,程序将处理字符串并保存数字。
我的问题是如何显示两个数字的加法。
我的意思是:
我有一个可以显示真复数实例的实部和虚部的函数,它工作正常:
- (void) functionDisplayInfo {
// number 1
if ([number1 functionProcessString:self.textEditComplexNumber1.text]) {
self.labelComplex1.text = [NSString stringWithFormat: @"true, %f, %f", number1.getRealValue, number1.getImgValue];
} else {
self.labelComplex1.text = @"false";
}
// number 2
if ([number2 functionProcessString:self.textEditComplexNumber2.text]) {
self.labelComplex2.text = [NSString stringWithFormat: @"true, %f, %f", number2.getRealValue, number2.getImgValue];
} else {
self.labelComplex2.text = @"false";
}
}
但是当我尝试真正添加复数的两个实部或虚部时,它不起作用。代码类似于上面的代码示例。这是代码示例:
- (IBAction)functionAddition:(id)sender {
self.labelDisplayResult.text = [NSString stringWithFormat:@"result is: %f %f", number1.getRealValue + number2.getRealValue, number1.getImgValue + number2.getImgValue];
[self functionDisplayInfo];
}
此代码仅显示0.000 ..和0.000 ...何时应显示添加结果。
有人可以告诉我,我做错了什么。感谢
答案 0 :(得分:1)
只是一个猜测,因为没有足够的信息。
读取代码看起来方法select *
from Sample
where DeleteFlg != True
接受一个字符串并从中解析一个复数。在var ret = (
from f in db.Sample
where f.DeleteFlg != true
select new { Name = f.Name }
)
functionProcessString:
和functionDisplayInfo
上调用此方法 - 因此该方法名称错误,解析并显示。
在您的方法number1
中,您执行了添加,然后调用number2
,这表示您在之前添加已解析数字。
我怀疑无论functionAddition:
和functionDisplayInfo
类型是什么,它都被初始化为零,只有在调用number1
后才会发生变化,因此首先进行加法会给出零。
您可以通过简单地交换number2
中两个语句的顺序来解决您的问题,以便首先进行解析。
您可能需要考虑重新设计代码,以便通过单独的方法处理输入的解析和显示。您也可以对输出执行相同操作,将输入操作与其结果显示分开。这可能会为您提供更清洁的设计,避免出现问题。例如。在这样的设计下,伪代码中的functionProcessString:
将是:
functionAddition:
HTH