Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO, Access 97 и точность в Delphi


Builder ©   (2003-03-29 17:44:00) 

При сожранении чисел с точностью 3 знака в базе данных(MS Access 97 через ADO), получаеться что имеем типа: 3.00000001
Поля в которые происходит сохранени:
С плавающей точкой (8 байт)
выставлено число дес знаков - 3.
Но все это не помагает.

Как правильно записывать?


Proxvost   (2003-04-03 11:50:00) [1]

Если ты из дельфи присваиваешь данные типа Double в поля Акцесса то проблемм не должно быть, а вот с чтением можно транслировать разными путями если тащишь через DBGrid то поле Precission смотри для ординарных 7 для двойных 15. Ежели тебе отдельно нада вытащить значение то даж не знаю, я выкрутился так:

namber := strtofloat(floattostrf(namber,ffgeneral (или ffexponent),7,7));

Изврат, согласен, но работает.

С уважением Прохвост

P.S. К сожалению приходится запоминать точность чисел которые вводишь. :( В обычном паскале этой проблемы не было :)


sniknik   (2003-04-03 08:14:00) [2]

а как ты присваиваеш? я вот делаю инсерт
INSERT INTO BOX1 (Fl,NEXTID,PREDID,REMARK) VALUES (1.37, 0, 0, "Test")
потом запрос
SELECT * FROM BOX1
и вижу в поле F1 = 1.37, не больше не меньше. (F1 формат double позиций после запятой Auto, 2 и 3 как у тебя тоже пробовал)


Builder   (2003-04-03 01:46:00) [3]

Да, со всем я согласен.
Но есть такой вопрос: если я оставляю плавающую точку, формат основной, то
присваиваю 1,37,
получаю 1,37000000001
но в аксесе я могу зайти поменять и ОНО присвоит полю 1,37.

КАК ОНО ЭТО ДЕЛАЕТ?
Что бы и я мог???


Anatoly Podgoretsky   (2003-03-31 11:33:00) [4]

Главное если бы задумался над смыслом слова с плавающейзапятой, то сразу бы сообразил, то что ты требуешь называется с фиксированнойзапятой - BCD поля.


blackman   (2003-03-31 10:29:00) [5]

>Если бы знал как правильно
Значит знал.


Builder   (2003-03-31 10:12:00) [6]

2 blackman
Если бы знал как правильно, не писал бы сюда.
10х за информативный ответ :(

Проблема решаеться оказываеться выставление типа currency и настройки его вида :)


blackman   (2003-03-30 19:59:00) [7]

А сам как думаешь ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо