如何在ios中将字符串转换为浮点值

时间:2014-07-09 10:26:54

标签: ios objective-c floating-point

我有一个场景,我正在获取应用程序版本并将该值转换为double。 我的JSON的价值是这种格式' 1.0.0'因此,当我将其转换为双倍时,只显示' 1'而不是1.0.0'。 这是我的代码:

 double appVersion = [[[[NSBundle mainBundle] infoDictionary]
        objectForKey:@"CFBundleVersion"] doubleValue];
NSLog(@"%f",appVersion);

如何获得1.0.0'在我的双倍价值。 感谢

1 个答案:

答案 0 :(得分:4)

应用版本的格式为major.minor.patchlevel,不是浮点数。相反,你必须阅读完整的字符串并拆分组件,如:

NSString *appVersion = [[[NSBundle mainBundle] infoDictionary]
        objectForKey:@"CFBundleVersion"];
NSArray *components = [appVersion componentsSeparatedByString:@"."];
NSAssert([components count] == 3, @"Something bad happened");
unsigned major = [components[0] unsignedValue];
unsigned minor = [components[1] unsignedValue];
unsigned patchlevel = [components[2] unsignedValue];