【问题标题】:Why is percentage UILabel showing 'nan%'为什么百分比 UILabel 显示 'nan%'
【发布时间】:2014-04-18 15:29:31
【问题描述】:

目前,该应用程序本身会记录某项体育比赛的线索。它通过更新UIStepper 来捕获信息,这会将UILabel 更新为1、2、3...等。

但是,当我按 UIStepper 上的“减号”以将 UILabel 更改回零时,UIStepper 右侧的 UILabel 显示提示百分比显示“nan%” '请看附图。

为什么要这样做?

百分比标签代码

self.smashPercentageLabel.text = [NSString stringWithFormat:@"%.2f%%",([self.smashLabel.text floatValue]/self.rallies)*100];

谢谢。

【问题讨论】:

    标签: ios xcode uilabel nan uistepper


    【解决方案1】:

    要检查 nan 是否可以使用 isnan() 方法。

    如果是 nan,那么只需 yourVar = 0;

    示例:

    double test = NAN;
    if(isnan(test))
        NSLog(@"YES, it is a NAN!");
    

    编辑:

    if(isnan([self.smashLabel.text floatValue]))
           self.smashPercentageLabel.text = [NSString stringWithString:@"0%"];
    else
           self.smashPercentageLabel.text = [NSString stringWithFormat:@"%.2f%%",([self.smashLabel.text floatValue]/self.rallies)*100];
    

    这应该可以解决问题,如果不尝试将 floatValue 更改为 doubleValue

    【讨论】:

    • 抱歉,我该如何实现?我不确定。谢谢。
    • 我不知道你的代码是什么样的,但简单的例子:double test = NAN; if(isnan(test)) NSLog(@"是的,它是一个 NAN!");因此,您必须将一个值(来自 UILabel 的 nan)传递给 if(isnan(value_from_ui_label)) ,然后您才能对其进行操作。我刚刚编辑了我的答案。上面的代码看起来更干净。
    • 嘿 SimpleMan,我已经发布了更新百分比标签之一的代码。如何将 nan 更改为“0”?谢谢。
    • 您好,抱歉回复晚了。我刚刚尝试过,它仍然在 UIStepper 右侧的百分比标签中显示“nan%”。我也在它上面放置了一个断点,它只是去 else 并错过了 '0%' 部分。你有什么想法?谢谢。
    • 奇怪..也许从这里尝试第二个解决方案:stackoverflow.com/questions/2109257/isnan-in-objective-c .. 但首先应该可以。你试过双倍吗?
    【解决方案2】:

    [NSString stringWithFormat:@" %i%%",averageValue] ;

    用价值显示百分比:)

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 2017-12-14
      • 2020-03-11
      相关资源
      最近更新 更多