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

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

округление при выводе из базы данных [D6, D7, Access]


malamba ©   (2005-05-16 12:23:00) 

Долго думать, куда сунуть свой вопрос, наверное, все-таки в "Базы данных"

В базу заносится число, например, 786,2
Разумеется, для его хранения минимально подходящее поле - single ( "одинарное с плавающей точкой" применительно к моей базе).
Ну или string ( "тектовый" формат ).
Число цифр после запятой - 1.

Теперь получаю его  в свое приложение
...FieldByName('my_field').AsString
Имею в Edit-е вместо 786,2 - 768,1987757734

Смотрю базу. Вижу 786,2

Как с этим бороться?


Danilka   (2005-05-17 08:44:00) [1]


> Разумеется, для его хранения минимально подходящее поле
> - single

Ошибаешься. Деньги хранить в single или double нельзя. Не уверен на счет типов полей Аццесса, но деньги лучше хранить в NUMERIC, с заданной точностью. При этом, реально будет храниться в целочисленном виде, а не с плавающей точкой, так что, в базе занимать будет не больше, впрочем, это (отведенное место для хранения числа в базе) самое последнее что должно тебя волновать.


Anatoly Podgoretsky   (2005-05-16 13:53:00) [2]

Данное число невозможно представить точно ни в одном формате с плавающей запятой, только форматирование.


malamba   (2005-05-16 13:18:00) [3]

Спасибо. Да, это оно.

Я пока что в базе просто поменял тип на currency (тип "денежный", формат "общий" ( без рублей)).
Пошло как миленькое.


LAngel   (2005-05-16 12:51:00) [4]

Field.DisplayFormat попробуй ;)


Наверх

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