计算器小数点

时间:2014-03-12 00:11:47

标签: ios objective-c decimal calculator

我开发了一个计算器,现在想在操作中添加一个小数点。到目前为止我使用的代码允许使用和显示小数点按钮,但是当我点击小数点后点击另一个数字时,小数点消失。例如:2.2变为22。

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController


-(IBAction)NUmber1:(id)sender{

    SelectNumber = SelectNumber * 10;
    SelectNumber = SelectNumber + 1;
    Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];


}
-(IBAction)NUmber2:(id)sender{

    SelectNumber = SelectNumber * 10;
    SelectNumber = SelectNumber + 2;
    Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];
}
-(IBAction)NUmber3:(id)sender{

    SelectNumber = SelectNumber * 10;
    SelectNumber = SelectNumber + 3;
    Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];
}
-(IBAction)NUmber4:(id)sender{

    SelectNumber = SelectNumber * 10;
    SelectNumber = SelectNumber + 4;
    Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];

}


- (IBAction)decimal:(id)sender {
    NSRange range = [Screen.text rangeOfString:@"."];
    if (range.location ==NSNotFound){
        Screen.text = [Screen.text stringByAppendingString:@"."];
    }

}

3 个答案:

答案 0 :(得分:1)

这是基于你告诉它做的正确行为。假设您有2.然后按2. SelectNumber为2,然后乘以10得到20然后加2,所以它是22,然后将其打印为整数。当您在小数位后键入数字时,您不能再乘以10,您必须添加数字/ 10 ^(到目前为止的位数)。请注意,您必须将其保留在浮点数而不是整数。

答案 1 :(得分:0)

下面

-(IBAction)NUmber1:(id)sender{

    SelectNumber = SelectNumber * 10;
    SelectNumber = SelectNumber + 1;
    Screen.text = [NSString stringWithFormat:@"%i", SelectNumber];
}

您正在使用新的INTEGER值删除当前字符串。尝试更改为

-(IBAction)NUmber1:(id)sender{
    Screen.text = [Screen.text stringByAppendingString:@"1"];
}

您还需要更改SelectNumber计算逻辑。我建议你在真正需要时从字符串中获取它

double SelectNumber = [Screen.text doubleValue];

答案 2 :(得分:0)

你的逻辑错了。

当你回复数字键时,你取SelectNumber,将它乘以10并加上键的值。最后,根据刚刚计算的值更新显示。

但是,当您响应点键时,只需向显示添加一个点,就不会做任何事情来改变后续数字键的处理方式。因此,正如您所观察到的,当处理下一个数字键时,显示中的点将被忽略。

您需要计算出任何算法,以便点之后的数字具有小数值。

相关问题