iPhone - Магазин плавать в SQLite через CoreData - PullRequest
2 голосов
/ 22 сентября 2010

Я храню число с плавающей точкой в ​​моем SQLite (через основные данные) следующим образом:

unit.conversion = [NSNumber numberWithFloat:0.001];

Когда я смотрю на базу данных SQLite, значение равно 0,0010000000474974513

unit.conversion - это необязательное число в моей модели данных ...

Что с этим не так?

Спасибо

Ответы [ 2 ]

5 голосов
/ 22 сентября 2010

Числа с плавающей точкой не являются (всегда) точными представлениями - они являются приблизительными.

См. Что должен знать каждый учёный об арифметике с плавающей точкой для фона.

1 голос
/ 22 сентября 2010

Учитывая тот факт, что вы видите правильно (как уже ответили), и вы не довольны этим: Вы можете использовать NSDecimalNumber. Быстрый поиск в Google при условии:

NSDecimalNumber позволяет вам выполнять десятичную арифметику, например, как финансовое учреждение хочет, чтобы вы делали математику. Предупреждение : работать с ним немного неприятно, поскольку все математические операторы являются сообщениями.

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