Круглое двойное значение до 2 знаков после запятой

Я имею двойное значение как 22.368511. Я хочу округлить его до двух знаков после запятой. т.е. он должен вернуться 22,37

Как я могу это сделать?

Как и в большинстве языков, формат

%.2f 

вы можете увидеть больше примеров здесь


Редактировать : Я также получил это, если вы обеспокоены отображением точки в случаях 25.00

 { NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init]; [fmt setPositiveFormat:@"0.##"]; NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]); NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.3]]); NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.0]]); } 
 2010-08-22 15:04:10.614 a.out[6954:903] 25.34 2010-08-22 15:04:10.616 a.out[6954:903] 25.3 2010-08-22 15:04:10.617 a.out[6954:903] 25 

Вы можете использовать приведенный ниже код, чтобы отформатировать его до двух знаков после запятой

 NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; [formatter setMaximumFractionDigits:2]; [formatter setRoundingMode: NSNumberFormatterRoundUp]; NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:22.368511]]; NSLog(@"Result...%@",numberString);//Result 22.37 

Swift 4:

 let formatter = NumberFormatter() formatter.numberStyle = .decimal formatter.maximumFractionDigits = 2 formatter.roundingMode = .up let str = String(describing: formatter.string(from: 12.2345)!) print(str) 
  value = (round(value*100)) / 100.0; 
 [label setText:@"Value: %.2f", myNumber]; 

Вы можете использовать функцию NSDecimalRound

В Swift 2.0 и Xcode 7.2:

 let pi:Double = 3.14159265358979 String(format:"%.2f", pi) 

Пример:

введите описание изображения здесь

Чтобы удалить десятичные знаки из вашего двойника, посмотрите на этот вывод

Obj C

 double hellodouble = 10.025; NSLog(@"Your value with 2 decimals: %.2f", hellodouble); NSLog(@"Your value with no decimals: %.0f", hellodouble); 

Выход будет:

 10.02 10 

Swift 2.1 и Xcode 7.2.1

 let hellodouble:Double = 3.14159265358979 print(String(format:"Your value with 2 decimals: %.2f", hellodouble)) print(String(format:"Your value with no decimals: %.0f", hellodouble)) 

Выход будет:

 3.14 3 

Я собирался пойти с ответом Джейсона, но заметил, что в Моей версии Xcode (4.3.3) я не мог этого сделать. поэтому после небольшого исследования, которое я обнаружил, они недавно изменили методы classа и удалили все старые. так вот как я должен был это сделать:

 NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init]; [fmt setMaximumFractionDigits:2]; NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]); 

Использовать NSNumber * aNumber = [номер NSNumberWithDouble: number]; вместо NSNumber * aNumber = [NSNumber numberWithFloat: number];

 +(NSString *)roundToNearestValue:(double)number { NSNumber *aNumber = [NSNumber numberWithDouble:number]; NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; [numberFormatter setUsesGroupingSeparator:NO]; [numberFormatter setMaximumFractionDigits:2]; [numberFormatter setMinimumFractionDigits:0]; NSString *string = [numberFormatter stringFromNumber:aNumber]; return string; } 

Для Swift существует простое решение, если вы не можете импортировать Foundation, использовать round () и / или не хотите String (обычно это случай, когда вы находитесь на Playground):

 var number = 31.726354765 var intNumber = Int(number * 1000.0) var roundedNumber = Double(intNumber) / 1000.0 

результата: 31.726

Вы можете сделать это:

 NSNumberFormatter* f = [[NSNumberFormatter alloc] init]; [f setNumberStyle:NSNumberFormatterDecimalStyle]; [f setFormat:@0.00"]; // test NSNumber* a = @12; NSString* s = [f stringFromNumber:a]; NSLog(@"%@", s); 
  • канонический способ рандомизации NSArray в Objective C
  • Класс размера для iPad-портрета и ландшафтных режимов
  • Прокрутка UITableView внутри UIScrollView
  • Класс Foo реализован как в MyApp, так и в MyAppTestCase. Один из двух будет использован. Какой из них не определен
  • Звук не работает в iPhone Simulator?
  • Кто-нибудь реализовал API PayPal через собственное приложение для iPhone?
  • iPhone: конвертировать строку даты в относительную отметку времени
  • Округлые углы только на вершине UIView
  • Как обнаружить паузу во вводе для UISearchBar / UITextField?
  • Проверка доступности iPhone
  • Пользовательский интерфейс UINavigationBar
  • Давайте будем гением компьютера.