0

iPad 用の電卓アプリケーション用にこのコードを作成しましたが、10 進数で数値を解く方法が見つかりませんでした。たとえば、4.5 + 0.5 を解こうとすると、答えとして 4 しか得られません。これには何かが欠けていることを私は知っています。

それらの着信応答に感謝します。

事前に乾杯!

- (IBAction)equalsPressed {
    self.typingNumber = NO;
    self.secondNumber = [self.calculatorDisplay.text intValue];

    int result = 0;

    if ([self.operation isEqualToString:@"+"]) {
        result = self.firstNumber + self.secondNumber;
    }
    else if ([self.operation isEqualToString:@"-"]) {
        result = self.firstNumber - self.secondNumber;
    }
    else if ([self.operation isEqualToString:@"*"]) {
        result = self.firstNumber * self.secondNumber;
    }
    else if ([self.operation isEqualToString:@"/"]) {
        result = self.firstNumber / self.secondNumber;
   }
    self.calculatorDisplay.text = [NSString stringWithFormat:@"%2.d", result];

    self.displayLabel.text = self.calculatorDisplay.text;
}

- (IBAction) clearPressed: (id)sender {
    self.calculatorDisplay.text = @"";
    self.firstNumber = [self.calculatorDisplay.text intValue];
    self.operation = [sender currentTitle];
}

- (IBAction)backspaceButton: (id)sender {
    self.displayLabel.text = [self.displayLabel.text substringToIndex:self.displayLabel.text.length - 1];
}

- (IBAction)decimalPressed:(id)sender {
    NSString *currentText = self.displayLabel.text;
    if ([currentText rangeOfString:@"." options:NSBackwardsSearch].length == 0) {
        self.displayLabel.text = [self.displayLabel.text stringByAppendingString:@"."];
    }
}
4

2 に答える 2

0

次の行で、結果が整数であると宣言しました。

int result = 0;

これにより、何らかの方法で値が丸められます。また、使用する他の値も正しいタイプであることを再確認します。入力値も s の場合、どれがちょうど 4 であるかをint計算します。int(4.5) + int(0.5)4 + 0

これを float または double (必要に応じて) に変更すると、より適切に機能するはずです。そのようです:

float result = 0;
于 2013-06-11T03:23:39.857 に答える