NSString для плавания ... что произойдет, если NSString не является числовым и содержит буквенно-цифровые символы? - PullRequest
0 голосов
/ 11 февраля 2011

если NSString sample = @"1sa34hjh#@";<br> Float 64 floatsample = [sample floatValue];

что происходит?что содержит floatsample?

1 Ответ

5 голосов
/ 11 февраля 2011

Прочитайте документацию .

Возвращаемое значение

Значение с плавающей запятой текста получателя в виде числа с плавающей запятой, пропускающего пробел в начале строки. Возвращает 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. Поэтому, чтобы ответить на ваш вопрос, если строка начинается с числа, то числовая часть строки будет взята и преобразована в число с плавающей точкой. Те же правила, что и выше, применяются к переполнению или недостаточному заполнению.

Если создание файлов кажется хлопотным, вам может понравиться этот пост в блоге о минималистском программировании Какао .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...