![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
округление при выводе из базы данных [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 попробуй ;)