String to float in objective c
我有一个解析器返回一些字符串值,我想用它作为类实例初始化的参数。
我有一个方法询问两个nsstring和一个float值,但我无法将该字符串转换为float,这是我的代码:
1 2 3 4 5 6 7 | NSString *from = [[NSString alloc] initWithString:@"EUR"]; NSString *to = [[NSString alloc] initWithString:[attributeDict objectForKey:@"currency"]]; NSNumber *rate = [[NSNumber alloc] initWithFloat:[[attributeDict objectForKey:@"rate"] doubleValue]]; currency = [[Currency init] alloc]; [currency addCurrencyWithFrom:from andTo:to andRate:rate]; |
在H
1 | - (id) addCurrencyWithFrom: (NSString *) from_ andTo:(NSString *) to_ andRate:(float *) float_; |
NO NO NO NO NO。
使用
1 2 3 4 5 | NSLog(@"%f", [@"123" floatValue]); //logs 123.0000 NSLog(@"%f", [@"abc" floatValue]); //logs 0.0000 NSLog(@"%f", [@"0" floatValue]); //logs 0.0000 NSLog(@"%f", [@"42" floatValue]); //logs 42.0000 NSLog(@"%f", [@"42x" floatValue]); //logs 42.0000 |
看到这个问题的更多相关信息:如何convert nsstring到安安nsnumber
1 | float f = [yourStringObject floatValue]; |
试试:
1 2 | double f = [from_ doubleValue]; double t = [to_ doubleValue]; |
通过nsnumber安也,而不是一个float *不会给你的结果,你是期待。