【问题标题】:Display integer in a UILabel [closed]在 UILabel 中显示整数 [关闭]
【发布时间】:2013-07-31 08:31:49
【问题描述】:

我正在尝试实现一个计算器。用于计算答案的数字有两个文本字段。之后我必须在UILabel 中将结果显示为整数答案。

当我尝试这个时,我收到以下错误:

error is incompatible type

【问题讨论】:

  • 请给我们看代码!
  • 如果您不向我们展示您尝试设置文本的方式,我们应该如何帮助您?
  • 这与xcode 4.2 无关,仅仅因为您使用xcode 并不意味着您应该使用xcode 标签。 xcdoe 标记保留用于xcode IDE 本身的问题,而不是您在其中遇到的问题。正确标记您的问题将帮助您获得最佳答案。欢迎使用 Stackoverflow。
  • @KapteinMarshall 看起来一点也不像 Objective-C ;)
  • @dasdom 我想我们可以几乎假设 OP 做了这样的事情:myLabel.text = 1;

标签: objective-c uilabel


【解决方案1】:

我会创建一个NSNumberFormatter 并指定它不应该有任何小数位数。这将为您提供您所期望的舍入行为。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.maximumFractionDigits = 0;

// will be "2" since 1.5 is rounded up  
NSString *numberText = [formatter stringFromNumber:@1.5];

// will be "1" since 1.25 is rounded down
NSString *anotherNumberText = [formatter stringFromNumber:@1.25]; 

如果您决定将来支持十进制数字,这将是最好的解决方案。然后,您可以将分数的数量更改为另一个数字并进行适当的舍入,而不会得到额外的尾随零。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.maximumFractionDigits = 2;

// will be "1.5" since no rounding is required (and no extra digits is required)    
NSString *numberText = [formatter stringFromNumber:@1.5];

// will be "1.13" since 1.125 is rounded up
NSString *anotherNumberText = [formatter stringFromNumber:@(1.0/8.0)]; // 1.125 

// will be "3.14" since 3.1415.. is rounded down
NSString *yetAnotherNumberText = [formatter stringFromNumber:@(M_PI)]; // 3.1415.. 

【讨论】:

    【解决方案2】:

    设置文本时必须使用格式说明符。

    label.text = [NSString stringWithFormat:@"The number is %d", myInteger];
    

    您可以使用带有%f 的浮点数、带有%c 的字符、带有%@ 的对象等来执行此操作。

    【讨论】:

      猜你喜欢
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      相关资源
      最近更新 更多