Разделить двузначный NSInteger на два NSInteger
Я пытаюсь выяснить, как взять двузначный NSInteger на iOS (например, 11) и превратить его в 2 отдельных NSInteger, каждый из которых выглядит как "1". В NSInteger всегда будет только 2 цифры, не больше, не меньше и не десятичные дроби.
4 ответа
Решение
Вы можете просто использовать целочисленную / модульную арифметику
int tensDigit=originalNumber / 10;
int onesDigit=originalNumber % 10;
NSInteger a=11;
NSInteger b=a%10;
NSInteger c=(a-b)/10;
NSLog(@"%@ %@ %@",a,b,c);
Вы можете просто разделить на 10 и найти напоминание о делении на 10.
NSNumber* number = [NSNumber numberWithInt:21];
NSNumber* partOne = [NSNumber numberWithInt:([number integerValue] / 10)];
NSNumber* partTwo = [NSNumber numberWithInt:([number integerValue] % 10)];
для 21 partOne будет 2, а partTwo будет 1.
В общем, для любого числа ni- я цифра равна n % pow(10, i)
Использовать это работает (в Swift).
var number = 36
var tenPlace = number / 10
var UnitPlace = number % 10
увидеть снимок экрана.