【发布时间】:2011-06-18 12:29:20
【问题描述】:
我最近开始在 iTunes U 上关注斯坦福大学关于 iPhone 开发的在线课程。
我现在正在为前几节课做家庭作业。我完成了构建基本计算器的演练,但现在我正在尝试第一个作业,但似乎无法解决。如下:
您的计算器已经可以处理浮点数(例如,如果您按 3 / 4 = 它将正确显示结果值 0.75),但是,用户没有办法 输入一个浮点数。补救这个。只允许合法的浮点数 要输入的数字(例如“192.168.0.1”不是合法的浮点数)。
首先,我不确定浮点数算作digitPressed 还是operationPressed。我什至尝试了一种名为floatingPointPressed 的新方法,但这并没有真正奏效。有人可以提供这方面的指导吗?
当我看到它是 digitPressed 时,我尝试了这样的操作:
if (hasFloatingPoint) {
NSRange range = [[display text] rangeOfString:@"."];
if (range.location == NSNotFound)
{
[display setText:[[display text] stringByAppendingFormat:digit]];
hasFloatingPoint = YES;
}
}
else {
[display setText:[[display text] stringByAppendingFormat:digit]];
}
但我认为我错过了这里的关键概念。
我还尝试了另一种解决方案,遗憾的是,我已经撤消了,所以我无法提供代码,但发生的事情是:我可以按一个数字,比如5,然后是浮点数和3所以我最终会得到5.3。然后我设法“禁用”其余输入的浮点数。但我想我对它有点太严格了:例如,我不能输入5.3.2,但在按下操作按钮后( + 等),它仍然不允许我按下浮点按钮。我想我应该重置我用于此的布尔值?
我不是在这里寻找一个完整的书面解决方案,但是有人可以提供一些关于如何解决这个问题的基本建议吗?对我应该做什么和思考的事情进行某种分步概述,但实际上并未提供代码解决方案。
提前致谢。
【问题讨论】:
标签: objective-c ios floating-point cs193p