Ваша проблема в том, что значение 35.770912
, которое вы видите, является округленным значением с плавающей запятой двойной точности.Если вам нужно больше десятичных знаков, чем вы можете использовать что-то вроде следующего:
[NSString stringWithFormat:@"%.14", @"35.77091272818393"];
Это выведет значение с 14 десятичными знаками, и вы увидите, что точность не была потеряна в плавающемзначение балла.
У вас проблемы со второй частью вашего вопроса, потому что вы получаете доступ к свойству floatValue
строки вместо свойства doubleValue
.Номер, на который вы ссылаетесь, требует большей точности, чем обеспечивает float.Вы должны хранить число в типе с плавающей запятой двойной точности.Примерно так должно решить вашу проблему:
NSString *tt = [NSString stringWithFormat:@"%.14f", 35.77091272818393];
double var = [tt doubleValue];