Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > Потеря точности при записи в Access |
Автор: mrHunter 31.7.2008, 09:54 | ||
Тип данных в Access "двойное, с плавающей точкой". VS 2005 & C#. В программе использую тип double. При использовании следующего кода:
теряется точность. Число b = 239.9359237546474, записывается в БД на одну цифру короче: 239.935923754647. Пробовал сделать тип данных в Access "Действительное", параметр в программе OleDbType.Numeric но выскакивает ошибка: "Несоответствие типов данных в выражении условия отбора". Преобразовывал число b к типу Decimal, всё равно не помогает. Спасибо за помощь. |
Автор: ZneP 1.8.2008, 09:32 |
Ставишь тип данных в Access "Действительное", а запись производишь не числом 239.9359237546474, а строкой "239,9359237546474" То есть, преобразовываешь свое число в строку, а точку заменяешь запятой (обязательно). еще кавычки добавь в команде на добавление: cmd.CommandText = "INSERT INTO [Таблица] (a11) VALUES ('?')"; |
Автор: Akina 1.8.2008, 10:39 |
Тип данных в Access "двойное, с плавающей точкой" в соответствии с документацией - 15-циферный. Тип Decimal в Access имеет 2 вариации - либо целое в 29 цифр, либо с одной цифрой перед запятой и 28 цифрами после. |
Автор: mrHunter 3.8.2008, 13:43 | ||
Преобразовать это число в строку корректно тоже не получается... На удивление, тоже идет округление... Уж чего только не пробовал... |