【问题标题】:Changing NSString value (displayed as number) to two decimal places and make a percentage将 NSString 值(显示为数字)更改为小数点后两位并计算百分比
【发布时间】:2015-11-26 07:03:28
【问题描述】:

当我检索我的JSONResponse 时,我检索到一个显示为 0.2434309606330154 的数字。这是我想要的数字,但它不是我想要的格式。它的设置方式是其他三个响应等于 1。

我尝试将其转换为NSNumber,但没有成功。

NSDictionary *parameters = @{
                             @"data": text.text,
                             };

NSMutableString *parameterString = [NSMutableString string];
for (NSString *key in [parameters allKeys]) {
    if ([parameterString length]) {
        [parameterString appendString:@"&"];
    }
    [parameterString appendFormat:@"%@=%@", key, parameters[key]];
}

NSLog(@"A: %@", jsonResponse[@"results"][@"A"]);
ALabel.text = [NSString stringWithFormat:@"%@",jsonResponse[@"results"][@"A"]];

【问题讨论】:

    标签: ios objective-c nsstring nsnumber


    【解决方案1】:
    NSString *string = [NSString stringWithFormat:@"%@",jsonResponse[@"results"][@"A"]];
     CGFloat float = [string floatValue];
    
    ALabel.text = [NSString stringWithFormat:@"%.02f",float];
    

    在 Swift 1.2 中:

    self.ALabel?.text = NSString(format: "%.02f%%", string.floatValue) as String
    

    【讨论】:

    • 当我尝试添加 CGFloat float = [string floatValue];它提出了一个解析问题“不能与以前的声明说明符结合”
    • 第一行新建字符串实例的原因是什么?我不认为这是必要的。
    • @AminNegm-Awad 仅用于解释目的。我知道上述所有任务都可以在一行中完成:)
    • 我是这么认为的。这就是我问的原因。但NSString *string = jsonResponse[@"results"][@"A"]; 会有相同的解释细节。
    • @AminNegm-Awad 你是对的。您可以根据需要对其进行编辑。
    【解决方案2】:
    NSString *string = [NSString stringWithFormat:@"%@",jsonResponse[@"results"][@"A"]];
    ALabel.text = [NSString stringWithFormat:@"%.02f%%",string.floatValue];
    

    这里的输出将是 - 0.24%

    【讨论】:

      猜你喜欢
      • 2013-06-14
      • 2012-09-08
      • 2021-10-10
      • 1970-01-01
      • 2022-12-05
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      相关资源
      最近更新 更多