如何在iphone中将十进制数舍入为2位?

Ato*_*tom 7 iphone rounding nsformatter

我们如何在iphone中将十进制数舍入为2位?

例如 ,

  1. 5345 - > 53

  2. 570 - > 57

  3. 89523 - > 90

我尝试使用nsformatter,这是我使用的代码,

    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumIntegerDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithInt:570]];

    [formatter release];
    NSLog(@"%@",numberstring);
Run Code Online (Sandbox Code Playgroud)

即使将舍入模式更改为不同的选项后,我仍然将值设置为70.请在这件事上给予我帮助

谢谢,维诺德.

Mob*_*oid 11

使用这个简单的代码而不是格式化程序;

myFloat = roundf(100 * myFloat) / 100.0;
Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助.

或者你可以使用它

float roundedValue = round(2.0f * number) / 2.0f;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setMaximumFractionDigits:2]; 
[formatter setRoundingMode: NSNumberFormatterRoundDown];  
NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:roundedValue]]; 
[formatter release];
Run Code Online (Sandbox Code Playgroud)


Dee*_*olu 4

由于您希望对小数位进行四舍五入,因此您实际上应该为此提供一个浮点数并将最大小数位设置为 2。您可能正在寻找这个,

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

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:570.57018]];

[formatter release];
NSLog(@"%@",numberString);
Run Code Online (Sandbox Code Playgroud)