Objective C - iOS - 验证float/double

Hen*_*vid 2 floating-point objective-c ios

我正在研究臭名昭着的斯坦福计算器作业.我需要验证输入的数字是否有效浮动值,因此我们可以处理102.3.79之类的数字.

为了避免编写一个小循环来计算字符串中的句点,必须有一个内置函数是吗?

小智 8

您可以使用C标准库函数strtod().它在遇到错误的地方停止,并相应地设置其输出参数.您可以利用以下事实:

- (BOOL)isValidFloatString:(NSString *)str
{
    const char *s = str.UTF8String;
    char *end;
    strtod(s, &end);
    return !end[0];
}
Run Code Online (Sandbox Code Playgroud)

  • C⊂ObjC,@ wxactly (5认同)
  • 我通过iTunes U做了cs193p的图形计算器分配,我想说以这种方式处理问题会有根本的缺陷.这违背了你想要学习的东西.我要说的是,正确的方法不是用无关的小数点来捣乱字符串然后将它们除去,而是为了防止在第一时间添加它们.使用`BOOL`或Objective-C方法.是的,从技术上讲,你可以使用像`strtod()`这样的C函数.这是否意味着您应该在学习练习中使您对Objective-C感到满意?不必要. (2认同)