2

我目前有一个自定义格式并显示在标签中的 int 值。int 值始终是一个 5 位数字,我在十分位和百分之一之间用 + 符号显示它。如果 number = 12345,则 displayNumber = 123+45。

ViewController.m

int high = number / 100;
int low = number - (high * 100);
NSString *displayNumber = [NSString stringWithFormat:@"%d+%d", high, low];

我的问题是数字在十分位时为零。如果 number = 12304,displayNumber 将显示为 123+4,我希望它显示为 123+04。我已经尝试使用 if 语句来表示 low < 10,但这与我的其余代码不能很好地结合。有没有什么简单的方法可以让低位显示两位数,即使它是一位数?提前感谢您的宝贵时间。

4

2 回答 2

6

试试这个:

NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", high, low];
//                                                         ^^
//                                                         ||
//                                                         |+-- Two positions
//                                                         +--- Pad with zeros

该声明

int low = number - (high * 100);

可以优化为

int low = number % 100;

您也可以完全跳过临时变量:

NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", number/100, number%100];
于 2013-04-02T02:10:16.170 回答
0

下面的代码在它等于 0 时保留了特定情况的第十位。前任。编号 = 12304,显示编号 = 123+04。我没有像 dasblinkenlight 建议的那样优化它。感谢dasblinkenlight!

  int high = number / 100;
  int low = number - (high * 100);


  NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", high, low];
于 2013-04-02T22:52:56.417 回答