-2

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

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

谢谢。

4

5 回答 5

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);
于 2012-11-21T11:00:19.560 回答
1
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];  
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];  
[formatter setMaximumFractionDigits:2];

NSString *formattedNumber = [formatter stringFromNumber:@(self.speed)];
于 2013-03-26T12:40:39.213 回答
0
double value = 1.47567;
double roundedValue = round(value * 100.0) / 100.0;

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

于 2012-11-21T11:13:41.197 回答
0

做这个

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

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

float numTwoDecimalDigits = atof([formattedNumber UTF8String]);
于 2013-11-10T19:00:55.313 回答
-1
NSLog(@"%.2f", 1.47567);

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

NSLog(@"%.2f", floor(1.47567 * 100) / 100);
于 2012-11-21T10:56:47.643 回答