如果
NSString sample = @"1sa34hjh#@";
Float 64 floatsample = [sample floatValue];
发生什么了?floatsample 包含什么?
如果
NSString sample = @"1sa34hjh#@";
Float 64 floatsample = [sample floatValue];
发生什么了?floatsample 包含什么?
阅读文档。
返回值
接收方文本的浮点值作为浮点数,跳过字符串开头的空格。上溢时返回 HUGE_VAL 或 –HUGE_VAL,下溢时返回 0.0。
如果接收方不是以浮点数的有效文本表示形式开始,也返回0.0 。
找出返回值的最好方法是自己检查返回值。您可以创建一个小程序并将其保存为扩展名为 .m 的文件。这是一个示例:
// floatTest.m
#import <Foundation/Foundation.h>
int main() {
NSString *sample = @"1sa34hjh#@";
float floatsample = [sample floatValue];
printf("%f", floatsample);
return 0;
}
使用 clang 在命令行上编译它并与 Foundation 框架链接。
clang floatTest.m -framework foundation -o floatTest
然后运行可执行文件并查看输出。
./floatTest
打印值为1.000000
。因此,要回答您的问题,如果字符串以数字开头,则将采用字符串的数字部分并将其转换为浮点数。与上述相同的规则适用于上溢或下溢。
如果创建文件看起来很麻烦,您可能会喜欢这篇关于极简 Cocoa 编程的博文。