компонентыSeparatedByString возвращают неверный результат - PullRequest
4 голосов
/ 15 марта 2012

Я использовал этот код, чтобы вырезать строку

    NSString *titleString = @"22.225453615805794,113.554006577014889";
    NSArray *array = [titleString componentsSeparatedByString:@","];
    NSLog(@"title string %@", titleString);
    NSLog(@"first %.15f", [[array objectAtIndex:0] floatValue]);
    NSLog(@"second %.15f", [[array objectAtIndex:1] floatValue]);

, но почему она возвращает

22.225454330444336 и 113.554008483886719

Ответы [ 2 ]

7 голосов
/ 15 марта 2012

Поскольку числа с плавающей запятой не настолько точны, вы можете получить более высокую точность, позвонив doubleValue вместо floatValue:

NSLog(@"second %.15f", [[array objectAtIndex:1] doubleValue]);

Это не проблема для componentsSeparatedByString:.

1 голос
/ 15 марта 2012

Я думаю, что есть проблема в преобразовании строки в число с плавающей точкой.Попробуйте использовать double.

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