Ato*_*tom 7 iphone rounding nsformatter
我们如何在iphone中将十进制数舍入为2位?
例如 ,
5345 - > 53
570 - > 57
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)
由于您希望对小数位进行四舍五入,因此您实际上应该为此提供一个浮点数并将最大小数位设置为 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)