2016-12-14 4 views
0

В моем тесте, когда я использую метод NSStringstringWithFormat:@"%.2f", чтобы сохранить два десятичных знака.Как сохранить два десятичных слова правильно?

  • [NSString stringWithFormat:@"%.2f", 9999.999]; результат: 10000.00

  • [NSString stringWithFormat:@"%.2f", 9999.99]; результат: 9999.99

  • [NSString stringWithFormat:@"%.2f", 9999.9912]; результат: 9999.99

Мое требование независимо от того, float - это что угодно, я просто хочу сохранить два десятичных знака, таких как 9999.999 ->9999.99, а не результат, который мы видели в первом примере, как это сделать?

+2

Использование NSNumberFormatter – GeneCode

ответ

2

Попробуйте этот код

1) В Objective-c:

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

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:99.9999]]; 
NSLog(@"numberString - %@",numberString); 

2) В swift:

let formatter:NumberFormatter = NumberFormatter.init() 
formatter.numberStyle = .decimal 
formatter.maximumFractionDigits = 2 
formatter.roundingMode = .down 
let numberString = formatter.string(from: NSNumber.init(value: 99.9999)) 
print("numberString - \(numberString!)") 
Смежные вопросы