0

我正在创建一个小型 iPhone 计算器,我已经完成了通常的操作,但我唯一的问题是我的数字显示时带有小数点和六个零。所以当我按下带有标签 5 的按钮时,它会显示在显示标签上

---------------
|     5.000000|
---------------

我只有一个看到没有零的数字 5。有什么建议么?

这是我拥有的显示标签上按下的数字的代码:

- (IBAction)digitAction:(id)sender {
    currentNumber = currentNumber *10 + (double)[sender tag];
    display.text = [NSString stringWithFormat:@"%2f",currentNumber];
}

我尝试了以下方法来格式化字符串,但它似乎不起作用:

而不是:@"%2f"我试过了@"%f"@"%d"等等。

4

4 回答 4

1
//  Change "%2f" to "%.0f"

- (IBAction)digitAction:(id)sender {
    currentNumber = currentNumber * 10 + (double)[sender tag];
    display.text = [NSString stringWithFormat:@"%.0f", currentNumber];
 }
于 2013-02-13T17:31:59.667 回答
1

将其转换为整数!

display.text = [NSString stringWithFormat:@"%d",[[NSNumber numberWithFloat:currentNumber] intValue]];

多田!

虽然,从一开始就使用整数会更有效:

int currentNumber = 5;
display.text = [NSString stringWithFormat:@"%d", currentNumber];

但是,这不允许你这样做float division;如果这是您的代码的必需元素,请使用第一个选项。

于 2013-02-13T16:54:03.463 回答
1

我认为您需要 smt 更像,这是有条件的:

- (IBAction)digitAction:(id)sender {
    currentNumber = currentNumber *10 + (double)[sender tag];
    double integral, fraction;
    fraction = modf(currentNumber, &integral); //This calculates the fractional part of double value
    NSString *formatString = fraction == 0.0 ? @"%.0f" : @".3f"; // Set format string according whether you have fraction or not
    display.text = [NSString stringWithFormat:formatString,currentNumber];
}
于 2013-02-13T18:16:12.547 回答
0

不要设置stringValue您的标签或使用printf-style 解决方案,请使用NSNumberFormatter. 它可以让您更好地控制数字的显示方式。

于 2013-02-13T16:54:16.603 回答