如何可以转换NSString包含多个任何原始数据类型(例如int,float,char,unsigned int,等等)?问题是,我不知道字符串在运行时将包含哪种数字类型.
我知道如何做到这一点,但我不确定这是否适用于任何类型,也是无符号和浮点值:
long long scannedNumber;
NSScanner *scanner = [NSScanner scannerWithString:aString];
[scanner scanLongLong:&scannedNumber];
NSNumber *number = [NSNumber numberWithLongLong: scannedNumber];
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
所以我有一个NSArray带有NSNumbers和NSStrings 的"myArray" .我需要他们在另一个,UIView所以我这样:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];
Run Code Online (Sandbox Code Playgroud)
subjectText工作.但是我怎样才能从中获得NSNumber它?(其实我需要他们的细绳...)我想转换NSString出来的NSNumber是这样的:
NSString *blah = [NSNumber intValue].但我不知道如何在上面的代码中设置它...
在将int值放入字典之前我已将int值设置为[NSNumber numberWithInt:2],现在当我尝试检索字典内容时,我希望它以int格式返回.. hw这样做?
这是我的代码;
NSMutabelDictionary *dict = [[NSMutableDictionary alloc]init];
int intValue = 300;
[dict setObject:[NSNumber numberWithInt:intValue] forKey:@"integer"];
Run Code Online (Sandbox Code Playgroud)
retriving .........
int number = [dict ObjectForKey:@"integer"];
Run Code Online (Sandbox Code Playgroud)
..它抛出异常,说铸造是必需的..当我这样做的时候..
int number = (int)[dict ObjectForKey:@"integer"];
Run Code Online (Sandbox Code Playgroud)
它不起作用......
如何解决这个问题呢?/
请建议..
现在这一定很容易,但两个怎么样NSNumber?就好像:
[one floatValue] + [two floatValue]
Run Code Online (Sandbox Code Playgroud)
还是存在更好的方式?
我是Obj-C的初学者,在这种情况下我有点困惑我有以下代码:
if (number1 < number2) {
NSLog(@"THE FOLLOWING NUMBER ");
NSLog(@"%@", number1);
NSLog(@"IS LESS THAN");
NSLog(@"%@", number2);
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我看到非常奇怪的结果,如下所示:
2011-07-06 20:38:18.044 helloworld[1014:207] THE FOLLOWING NUMBER
2011-07-06 20:38:18.047 helloworld[1014:207] 190.8776
2011-07-06 20:38:18.050 helloworld[1014:207] IS LESS THAN
2011-07-06 20:38:18.053 helloworld[1014:207] 96.75866
Run Code Online (Sandbox Code Playgroud)
这两个数字都是NSNumber对象,这样的事情怎么会发生?我通过在屏幕上找到精灵之间的距离得到这两个数字.
真的很感激任何线索或建议
NSNumber和NSInteger有什么区别?我应该知道更多这样的原始人吗?浮筒有吗?
我找到了一个将字符串转换为NSNumber的方法,但代码是在Objective-C中.我试过把它转换成swift但它不起作用.
我正在使用的代码
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42222222222"];
Run Code Online (Sandbox Code Playgroud)
我很快就以这种方式使用它
var i = NSNumberFormatter.numberFromString("42")
Run Code Online (Sandbox Code Playgroud)
但是这段代码不起作用,我做错了什么?
提前致谢
如何将超过3位的所有数字转换为4位或更少的数字?
这正是我的意思:
10345 = 10.3k
10012 = 10k
123546 = 123.5k
4384324 = 4.3m
Run Code Online (Sandbox Code Playgroud)
舍入并不完全重要,但还有一个额外的好处.
我已经研究过NSNumberFormatter但是没有找到合适的解决方案,而且我还没有在SO上找到合适的解决方案.非常感谢任何帮助,谢谢!
如何确定Cocoa NSNumber是否代表NaN(不是数字)?
例如,当我解析具有无效(非数字)内容的字符串时,就会出现这种情况.
我意识到NSDecimalNumber继承自NSNumber.
但是,我正在努力弄清楚如何从NSNumber初始化NSDecimalNumber或如何将NSNumber转换为NSDecimalNumber.
我试过了
NSDecimalNumber* d = [aNumber copy];
Run Code Online (Sandbox Code Playgroud)
aNumberNSNumber对象在哪里无济于事.
我错过了什么吗?
谢谢.