Это проблема SQLite, поскольку, насколько я понимаю, SQLite не имеет понятия «типы» - только выводы для значений:
http://www.sqlite.org/faq.html#q3
Как изменить столбец sqlite (iPhone)?
Я предполагаю, что при переводе с плавающей запятой теряется вывод - если вы читаете документы, он говорит так же:
Столбец с числовым сродством может
содержат значения, используя все пять хранилищ
классы. Когда текстовые данные вставлены
в числовой столбец, попытка
сделано, чтобы преобразовать его в целое число или
вещественное число до его сохранения. Если
преобразование прошло успешно (имеется в виду
что преобразование происходит без
потеря информации), то значение
хранится с использованием INTEGER или REAL
класс хранения. Если преобразование
не может быть выполнено без потери
информация, то значение сохраняется
используя класс хранения TEXT
Похоже, что передаваемое вами значение НЕ может быть сохранено как РЕАЛЬНОЕ (по какой-то причине) и пытается быть настроенным на ТЕКСТ с ограничением длины 8. Это также имеет смысл, потому что он считает десятичную дробь - и не должен (только если это текст).
Прочитайте здесь:
http://www.sqlite.org/datatype3.html#affinity
Похоже, это проблема, с которой вы имеете дело. В целом, SQLite - это база данных типа «ducktyped», и многие укусили ее.
Итак, вкратце, я думаю, что ваш ответ, вероятно, состоит в том, чтобы использовать Math.Round (3), чтобы привести значение к целому числу менее 8 + десятичному (и отрицательному символу), чтобы его можно было привести в столбец.