如何将字符串转换为浮点数?

12

可能是重复问题:
在Objective-C中将字符串转换为浮点数

我想将一个字符串转换为浮点数。

/* dict is an NSDictionary to load Preferences */ 
NSString *str = [dict objectForKey:@"key"];

这是我的进展。现在我想将字符串值(在本例中为@"32.0f")转换为浮点数,以便可以被我的应用程序处理。我该怎么做?

2个回答

55
CGFloat strFloat = (CGFloat)[str floatValue];

对不起之前的例子,请考虑这个: 它跳过小数点后面的数字,例如:NSString * str = @"1.12"; CGFloat strFloat = (CGFloat)[str floatValue]; // 1.0000请参考这个链接: https://dev59.com/2Gsz5IYBdhLWcg3wR1kc#23932420 - asmad
请注意,如果字符串不是数字,则此代码将返回0.0。您需要进行额外的检查以区分真正的“0”字符串输入。 - Stan James
@StanJames 当然,这是显而易见的。我假设用户在使用NSString时会执行应该执行的适当检查。 - Sid
这可能是危险的,因为“CGFloat”不能保证是“float”,它也可以是“double”。 为了安全起见,您可能希望执行以下操作: NSString *numberAsString = @"2.3"; CGFloat numberAsFloat; if (CGFLOAT_IS_DOUBLE) { numberAsFloat = [numberAsString doubleValue]; } else { numberAsFloat = [numberAsString floatValue]; } - LinenIsGreat
但是显然我不应该被允许评论,因为我不知道如何使用迷你Markdown。 - LinenIsGreat
显示剩余2条评论

6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接