objective-c - فوائد - قواعد الحساب الذهني




كيف يمكنني وضع عدد صحيح على اليسار مع الأصفار؟ (5)

لدي المتغير التالي:

NSNumber *consumption = [dict objectForKey:@"con"];

والتي تُرجع 42. كيف يمكنني وضع هذا الرقم على 10 أرقام على اليسار ، مؤديًا بالأصفار. يجب أن يكون الإخراج كما ،

0000000042

أو إذا كان 420 ،

0000000420


حل سويفت 3

let x = 1078.1243
let numFormatter = NumberFormatter()
numFormatter.minimumFractionDigits = 1 // for float
numFormatter.maximumFractionDigits = 1 // for float
numFormatter.minimumIntegerDigits = 10 // how many digits do want before decimal
numFormatter.paddingPosition = .beforePrefix
numFormatter.paddingCharacter = "0"

let s = numFormatter.string(from: NSNumber(floatLiteral: x))!

انتاج

"+0000001078.1"


طريقة Objective-C ،

NSNumberFormatter * numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setPaddingPosition:NSNumberFormatterPadBeforePrefix];
[numberFormatter setPaddingCharacter:@"0"];
[numberFormatter setMinimumIntegerDigits:10];

NSNumber * number = [NSNumber numberWithInt:42];

NSString * theString = [numberFormatter stringFromNumber:number];

NSLog(@"%@", theString);

طريقة C أسرع بالرغم من ذلك.


مع متغير num_digits

NSString* format =[NSString stringWithFormat:@"%%0%zdzd", num_digits];
NSString *theString = [NSString stringWithFormat:format, 42];


NSString *paddedStr = [NSString stringWithFormat:@"%010d", 42];

تحرير: انها جيم نمط التنسيق. ٪ nd يعني أن العرض n على الأقل. لذلك إذا كان عدد الأعداد الصحيحة 2 خانات ، فسيكون لديك سلسلة طول 3 (عند استخدام٪ 3d). افتراضيًا ، يتم ملء المساحات الفارغة اليسرى بمساحة. يعني٪ 0nd (0 بين٪ و n) استخدام 0 للحشو بدلاً من المساحة. هنا n هو الطول الكلي. إذا كان عدد صحيح أقل من أرقام n ثم يتم استخدام الحشوة اليسرى.





cocoa-touch