Ответ 1
Создайте NSNumber, используя
NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];
Затем вызовите
[myDoubleNumber stringValue];
У меня есть следующее двойное значение: 0.000900137869045636
который я хотел бы преобразовать в NSString
.
Я пробовал следующий код, но независимо от того, он округляет значение до этого: 0.000900138
[NSString stringWithFormat:@"%.20lf", [currentLocation coordinate].latitude];
Что мне делать, чтобы сохранить двойной номер?
Спасибо.
Создайте NSNumber, используя
NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];
Затем вызовите
[myDoubleNumber stringValue];
Короткий ответ: используйте %.18lf
- протестировано с 0.000900137869045633 → 0.000900137869045639. Но не обманывайте себя, это точно, оно работает только из-за округления.
Кажется, что с вашим кодом, по-видимому, нет НИКАКОЙ проблемы с вашим кодом: я просто попробовал следующее и
int main(int argc, const char * argv[])
{
double foo = 0.000900137869045636;
NSLog([NSString stringWithFormat:@"%.20lf", foo]);
return 0;
}
выход журнала:
2013-05-10 14:00:18.492 Test[71101:303]
0.00090013786904563598
Так что не уверен, какова ваша проблема, но это не в создании NSString.