舍入浮点数最多两位小数

时间:2012-11-21 10:49:10

标签: objective-c ios

我试图将浮动值四舍五入到小数点后两位。我正在使用objective-c

例如1.47567应该是这样的,1.47 ..请帮忙

Thnx。

5 个答案:

答案 0 :(得分:2)

    float num = 1.47567;
    num *= 100;
    if(num >= 0) num += 0.5; else num -= 0.5;
    long round = num;
    num = round;
    num /= 100;
    NSLog(@"%.2f",num);

答案 1 :(得分:1)

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];  
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];  
[formatter setMaximumFractionDigits:2];

NSString *formattedNumber = [formatter stringFromNumber:@(self.speed)];

答案 2 :(得分:0)

NSLog(@"%.2f", 1.47567);

将舍入到小数点后两位。如果你想“削减”,有不同的选择。例如:

NSLog(@"%.2f", floor(1.47567 * 100) / 100);

答案 3 :(得分:0)

double value = 1.47567;
double roundedValue = round(value * 100.0) / 100.0;

当然,您可以使用命名常量代替100.0。这只是一个演示。

答案 4 :(得分:0)

这样做

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];  
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];  
[formatter setMaximumFractionDigits:2];

NSString *formattedNumber = [formatter stringFromNumber:@(self.speed)];

float numTwoDecimalDigits = atof([formattedNumber UTF8String]);