Round Up NSNumber

NSNumberFormatter *formatNumber = [[NSNumberFormatter alloc] init];
[formatNumber setRoundingMode:NSNumberFormatterRoundUp];
[formatNumber setMaximumFractionDigits:0];

NSNumber *height = [formatNumber numberFromString:self.heightField.text];
NSNumber *width = [formatNumber numberFromString:self.widthField.text];
NSNumber *depth = [formatNumber numberFromString:self.depthField.text];
NSNumber *weight = [formatNumber numberFromString:self.weightField.text];

NSLog(@"height %@", height);
NSLog(@"width %@", width);
NSLog(@"depth %@", depth);
NSLog(@"weight %@", weight)

I am trying to round the height, width, depth and weight from a UITextField to the nearest integer, but it still shows the whole decimal point. Can someone help with my code to round it?

THX

+4
source share
3 answers

Without ceremony and with a modern purpose C:

NSNumber *roundedUpNumber = @(ceil(self.field.text.doubleValue));
+9
source

You can use this

NSString *numericText = self.field.text;
double doubleValue = [numericText doubleValue];
int roundedInteger = ceil(doubleValue);
NSNumber *roundedUpNumber = [NSNumber numberWithInt:roundedInteger];

Summary:

  • doubleValue converts your field to double
  • ceil rounds double to the nearest integer
  • casting to int converts double to integer
  • build an NSNumber from an integer.
+5
source

, , NSNumberFormatter, - > - > . , " Boffin Lab" :

, NSNumberFormatter, . , Apple Technical , . , case " NSNumber ...

, C, ceil(), round(), floor() .., .

NSNumberFormatter, .

, , - , : string- > number- > string- > number

It will look like * :

NSNumber *n = [formatNumber numberFromString:
                  [formatNumber stringFromNumber:
                      [formatNumber numberFromString:@"1.2345"]]];

* Children, do not try this at home.

+2
source

Source: https://habr.com/ru/post/1544385/


All Articles