【问题标题】:iPhone Calculator decimal digits reversed on inputiPhone计算器十进制数字在输入时反转
【发布时间】:2012-04-28 20:17:12
【问题描述】:

在做教程工作时,我花了很长时间才实现一个小数点,现在我有了一个在公式中有效的小数点,但问题是它反转了输入 - 例如,输入 1.4,计算器屏幕显示为4.1 - 我知道这与我对变量的管理有关.. 计划使用 BOOL 而不是浮点数.. 但是.. 任何接受者?

代码:

     - (IBAction) pressedDecimal: (id) sender
     {
       pressedDec = 1;
     }

    - (IBAction) pressedDigit: (id) sender 
     {
       if (pressedDec == 1) 
       {currentNumber = .1 * currentNumber + (double)[sender tag];
       calculatorScreen.text = [NSString stringWithFormat:@"%g",currentNumber];
      }
else

     {

       currentNumber =  currentNumber * 10 + (double)[sender tag];
       calculatorScreen.text = [NSString stringWithFormat:@"%g",currentNumber];
       pressedDec = 0;

      }
     }



  - (IBAction) pressedOperation: (id) sender 
   {
if (currentOperation == 0) result = currentNumber;
else {
    switch (currentOperation) {
        case 1:
            result = result + currentNumber;
            break;
        case 2:
            result = result - currentNumber;
            break;
        case 3:
            result = result * currentNumber;
            break;
        case 4:
            result = result / currentNumber;
            break;
        case 5:
            currentOperation = 0;
            break;


    }

}
currentNumber = 0;
calculatorScreen.text = [NSString stringWithFormat:@"%g",result];
if ([sender tag] == 0) result = 0;
currentOperation = [sender tag];
  }

【问题讨论】:

    标签: iphone objective-c xcode ios4 syntax


    【解决方案1】:

    更仔细地考虑从您的代码中提取的这段代码的作用:

    currentNumber = .1 * currentNumber + (double)[sender tag];
    

    (我不是很明确,因为如果我正确理解了这个问题,那么您这样做是为了学习,并且您必须思考得越多,您就会学得越好 :-)。)

    【讨论】:

    • 非常感谢,您说的完全正确。正如 sch 进一步说明的那样。我只希望我的下一个问题能以类似的形式得到回答。对于一个初出茅庐的开发人员来说,有时只需要一双额外的眼睛说“嘿!你在想什么”就是他们所需要的。非常感谢您对我的学习道路的关心!
    • 很高兴为您服务!您应该考虑接受 sch 的回答或我的回答。祝你学习顺利...
    • Gareth...我遇到了问题。我很想接受你的回答,因为它让我自己回答,但是为了将来搜索其他用户,我相信协议会让我接受他的答案,因为它会显示答案,并且可能会避免重复的问题被问到?
    • 真的没关系。无论如何,任何阅读此问题的人都会找到这两个答案。我建议你接受你认为更好的答案;我保证如果你选择 sch,我不会被冒犯,我敢打赌,如果你选择我的,sch 也不会被冒犯。 (这并不是说我们中的任何一个都极度缺乏 SO 声誉点。)
    • Gareth... 这是给你的:currentNumber = currentNumber + (double)[sender tag] * 0.1; .. 这就是我看到 sch 的方法完全没有效果后花了我几个小时的时间,但是,这种方法现在很完美。感谢您让我思考并建议所有新闻都这样做。
    【解决方案2】:

    这里的第 2 课:Stanford iTunes U tutorial 涵盖了构建一个简单的计算器。可能会有所帮助。无论哪种方式,这都是一个很棒的教程系列。

    【讨论】:

    • 我认为那是他在做的教程,不包括小数点,那是作业。
    • 现在从 iTunes 下载,我记得不久前听说过这个,看到它是在 2010 年制作的,我希望我能将 Xcode 4+ 的功能与当时的版本区分开来。我非常感谢你,因为这正是我所需要的......辅导哈哈。
    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多