【问题标题】:Tutorial for iPhone calculator with decimal point [duplicate]带小数点的iPhone计算器教程[重复]
【发布时间】:2011-09-26 00:05:02
【问题描述】:

可能重复:
How do I change the number of decimal places iOS?
If using Xcode to make an iOS calculator, how would I add a decimal button?

我正在寻找有关如何制作(简单)iPhone 计算器的 iOS 教程,该计算器至少可以执行以下操作:加、减、乘、除,并允许用户输入小数点。我一直没能找到这样的教程,所以如果有人知道,请告诉我。实际上,我确实找到了一个可以加、减、乘、除但不能做小数点的地方。如果您能告诉我如何让用户输入小数点,则无需进一步的教程。我现在使用的代码如下。

在头文件中:

#import <UIKit/UIKit.h>

@interface CalculatorViewController : UIViewController {

float result;
IBOutlet UILabel *calculatorScreen;
int currentOperation;
float currentNumber;

}


-(IBAction)buttonDigitPressed:(id)sender;
-(IBAction)buttonOperationPressed:(id)sender;
-(IBAction)cancelInput;
-(IBAction)cancelOperation;

在主文件中:

#import "CalculatorViewController.h"

@implementation CalculatorViewController


-(IBAction)buttonDigitPressed:(id)sender {


currentNumber = currentNumber *10 + (float)[sender tag];
calculatorScreen.text = [NSString stringWithFormat:@"%.1f", currentNumber];

}

-(IBAction)buttonOperationPressed:(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:@"%.1f", result];
if ([sender tag] ==0) result=0;
currentOperation = [sender tag];
}



-(IBAction)cancelInput {

currentNumber =0;
calculatorScreen.text = @"0";

 }


-(IBAction)cancelOperation {



currentNumber = 0;
calculatorScreen.text = @"0";
currentOperation = 0;

}

【问题讨论】:

  • 这是您就同一主题提出的第三个问题。如果您仍然不了解如何处理这个问题,为什么还要接受这些问题的答案?
  • 这是同一个问题,但我仍然没有找到适合我的答案。我接受答案,给回答几个声望点的人。还是没能得到好的答案,所以这次找了个计算器的教程。我不知道如何删除问题,也没有人回答我的其他问题,所以我又问了一遍。再问一次我觉得有点不好,但话说回来,没有人回答其他人。
  • @iOS 开发者 - 您没有义务接受不能解决您的问题的答案。如果您认为当前的答案不能满足您的真正需求,请编辑您的原始问题以使您的需求更加明确。

标签: iphone objective-c ios calculator


【解决方案1】:

这应该可以。简单直接。

更改 currentNumber 以存储正在进行的计算的当前字符串值(Make this NSMutableString),为小数点按钮添加一个出口(@98​​7654322@)。

-(IBAction) buttonDigitPressed:(id)sender
{
    currentNumber = [currentNumber appendFormat:@"%d"];
    calculatorScreen.text = currentNumber;
}

- (IBAction) buttonDecialPointPressed:(id)sender
{
    if(behindTheDecimal == YES)
        return;
    behindTheDecimal = YES;
    currentNumber = [currentNumber appendString:@"."];
    calculatorScreen.text = currentNumber;
}

-(IBAction)buttonOperationPressed:(id)sender
{
    float number = [currentNumber floatValue];
    switch (currentOperation)
    {
        case 0:
            result = number;
            break;
        case 1:
            result = result + number;
            break;
        case 2:
            result = result - number;
            break;
        case 3:
            result = result * number;
            break;
        case 4:
            result = result / number;
            break;
        case 5:
            currentOperation = 0;
            break;
        case 6:
            break;
    }

    currentNumber = [currentNumber stringWithFormat:@"%f", result];
    calculatorScreen.text = currentNumber;

    // why is this needed, how is it used?
    currentOperation = [sender tag];
}


-(IBAction)cancelInput
{
    behindTheDecimal = NO;
    currentNumber = @"0";
    calculatorScreen.text = currentNumber;  
}

-(IBAction)cancelOperation
{
    behindTheDecimal = NO;
    currentNumber = @"0";
    calculatorScreen.text = currentNumber;
    currentOperation = 0;
}

【讨论】:

  • 除了此代码允许输入多个小数点。您需要检查是否已经有小数点,如果有则忽略它。
  • 正确,对于简单的情况是固定的。
猜你喜欢
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多