Я вот в чем проблема: У меня есть NSString, который содержит «1.7» (например), и мне нужно получить число с плавающей точкой = 1.7 I ' ve попытался с [mystring floatValue]
, но результат 1.700000000004576 Если я попробую с «1.74», результат будет 1.74000000000000000067484 как я могу его исправить? спасибо!Как преобразовать строку UTF8 в значение float в объекте-c
ответ
Решенный! Я использовал sqlite3_bind_text, даже если мой атрибут базы данных - значение FLOAT, и я использовал mystring вместо myfloat, и он отлично работает! Спасибо!
Вы правильно конвертируете строку в поплавок. Проблема в том, что числа с плавающей запятой не могут точно представлять все действительные числа. Прямое назначение:
float x = 1.7;
по-прежнему будет иметь точность ошибки. Это как раз то, что числа с плавающей запятой.
Обходной путь зависит от ваших потребностей. Некоторые примеры. Если вам нужна более высокая точность математических вычислений, вы можете использовать удвоения. Если вы пытаетесь генерировать выходные данные для пользователя, вы можете отформатировать вывод, чтобы он ограничивал количество цифр, показанных после десятичной точки. Если вы имеете дело с деньгами, вы можете конвертировать долларовые суммы с плавающей запятой в целые числа центов и выполнять все вычисления с использованием целых чисел, только отображая десятичную точку на выходе пользователю.
Поплавки должны быть способны представлять бесконечно много действительных чисел, но поплавок содержит конечное число бит, поэтому поплавки являются приближениями.
См. this article для получения дополнительной информации.
Вы можете обрезать ответ, используя формы ниже. .1 установит результат на одно десятичное место.
NSLog(@"mystring = %.1f ",[mystring floatValue]);
- 1. Преобразовать строку в utf8 строку
- 2. Как преобразовать многоточечную строку в значение float
- 3. Как преобразовать строку в значение float?
- 4. Как преобразовать строку в UTF8?
- 5. Как преобразовать строку в float
- 6. Как преобразовать UTF8 в строку в C#
- 7. Как преобразовать строку в float
- 8. Как преобразовать строку в Float?
- 9. Python - преобразовать строку-числовое значение в float
- 10. Как преобразовать строку в UTF8 в Ruby
- 11. Как преобразовать utf8 как строку в реальный utf8?
- 12. Невозможно преобразовать строку в float
- 13. Как преобразовать строку в float с Perl?
- 14. Как преобразовать строку UCS2 в UTF8?
- 15. Как преобразовать строку в кодировку utf8?
- 16. Как преобразовать строку UTF8 в массив байтов?
- 17. Как преобразовать строку utf8 в [] byte?
- 18. Как преобразовать строку в float в python?
- 19. Как преобразовать строку в float в python?
- 20. Как преобразовать строку в float в ssis
- 21. Как преобразовать строку в float в JavaScript?
- 22. Невозможно преобразовать строку в float
- 23. Преобразовать координатную строку в float
- 24. Как преобразовать строку ASCII в строку UTF8 в C++?
- 25. Как преобразовать строку Lua в float
- 26. Как преобразовать строку в Integer или Float
- 27. преобразовать арабскую строку в utf8 закодированного URL
- 28. преобразовать строку в float внутри функции SUMIF
- 29. Как преобразовать шестнадцатеричный шаблон (как строку) в float в Node.js?
- 30. Как преобразовать значение чтения ADC в Float?
спасибо вам tempestive answer.the проблема заключается в том, что я должен вставить значение с плавающей точкой в БД SQLite, а затем использовать это значение с плавающей точкой для сделать некоторый запрос в Интернете, мне нужно поставить 1.7 в мой дб можно округлить это значение? – Daniele 2010-12-01 17:42:30
Вы могли бы использовать исходную строку для запроса? Затем вы можете сохранить строку в своем db. После преобразования строки в float вы не сможете узнать, было ли исходное значение 1,7 или 1,700000000004576. – 2010-12-01 17:50:34
теперь я понял, большое вам спасибо! Я использовал строку вместо float, и она работает нормально. – Daniele 2010-12-01 18:02:46