eighteenDigitNumberString

eighteenDigitNumberString

我尝试了这个:

NSInteger numberFinal = 100000000000000000 + ((float)arc4random() / UINT32_MAX) * (999999999999999999 - 100000000000000000);

但它返回零...我不想指定范围,而只想要任何18位数字...

最佳答案

根据您的要求,正如@duDE所述,您不能使用NSInteger保存18位数字,但是有一种使用NSString的解决方案。

NSString *eighteenDigitNumberString = [[NSNumber numberWithInt:1 + arc4random_uniform(9)] stringValue];

for (int i = 0; i < 17; i++) {

    eighteenDigitNumberString = [eighteenDigitNumberString stringByAppendingString:[[NSNumber numberWithInt:arc4random_uniform(10)] stringValue]];
}

NSLog(@"eighteenDigitNumberString : %@", eighteenDigitNumberString);

到了这里,无需解释所有简单的事情。

编辑:如果您确实想要一个长long值,可以这样做:
long long eighteenDigitNumberLongLong = [eighteenDigitNumberString longLongValue];

编辑:为了避免前导0,初始字符串已使用非零数字启动,并且循环仅运行17次。

关于ios - 生成任意正好为18位数字的随机NSInteger,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25567674/

10-11 22:03