【问题标题】:Convert unsigned long to float with 2 precision decimal value将 unsigned long 转换为具有 2 精度十进制值的浮点数
【发布时间】:2015-04-17 05:49:59
【问题描述】:

我正在尝试将值转换为具有 2 精度十进制格式的浮点数。

NSString* formattedNumber = [NSString stringWithFormat:@"%.2lu", (unsigned long)users.count];
float totalRatingCount = atof([formattedNumber UTF8String]);

这给了我诸如

之类的值
1.000000
2.000000
3.000000

我想要的是以下

1.00
2.00
3.00

我哪里错了?

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    浮点数没有精度值,它不是定点值。但是,有一种更简单的方法可以转换为浮点数:

    CGFloat totalRating = [formattedNumber floatValue];

    要打印精度为 2dp 的浮点数,请使用格式字符串 @"%.02f"

    【讨论】:

    • 你必须格式化它,比如 [NSString stringWithFormat:@"%.02f", totalRating]
    【解决方案2】:

    你需要使用%.2f格式说明符作为

    NSString* formattedNumber = [NSString stringWithFormat:@"%.2f", (float)users.count];
    float totalRatingCount = atof([formattedNumber UTF8String]);
    

    您将获得所需的输出,精度为小数点后 2 个值。

    【讨论】:

    • 我在 NSLog 中打印结果,但它仍然显示值为“2.000000”
    • NSLog(@"formattedNumber = %@", formattedNumber);它会将值打印为“2.00”
    【解决方案3】:
    Using NSNumberFormatter, you can rounding number up to two digit.
    double d = 12.1278;
    
    NSNumberFormatter *formatter = [NSNumberFormatter new];
    [formatter setRoundingMode:NSNumberFormatterRoundFloor];
    [formatter setMinimumFractionDigits:2];
    [formatter setMaximumFractionDigits:2];
    NSString *numberString = [formatter stringFromNumber:@(d)];
    
    NSLog(@"numberString: %@", numberString);
    

    输出是:


    数字字符串:12.12

    【讨论】:

      【解决方案4】:

      试试这个:

      NSNumber *number = [NSNumber numberWithFloat:(unsigned long)users.count];
      NSNumberFormatter* nf=[[NSNumberFormatter alloc]init];
      nf.minimumFractionDigits=2;
      nf.maximumFractionDigits=2;
      NSString* str = [nf stringFromNumber:number];
      NSLog(@"%@",str);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-07
        • 1970-01-01
        • 2015-08-30
        • 2022-11-19
        • 2014-03-01
        • 1970-01-01
        • 2020-11-12
        • 2012-01-07
        相关资源
        最近更新 更多