Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / искомые данные в dbgrideh без округления / 17 сообщений из 17, страница 1 из 1
30.10.2018, 08:14
    #39724765
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
доброе утро! dbgrideh из бд отображает данные типа double: 0,0035; 0,00125 и т.д. в гриде эти данные округляются, например, в бд 0,0035, в таблице 0,004. что необходимо, чтобы числа были "оригинальными", без округления?
...
Рейтинг: 0 / 0
30.10.2018, 08:50
    #39724768
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterina,

ЕМНИП, у эхгрида должна быть опция что-то вроде Columns[?].DisplayFormat. Там и обозначаете, сколько знаков после запятой должно отображаться
...
Рейтинг: 0 / 0
30.10.2018, 08:59
    #39724771
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
Док,

я так сделала:
Код: sql
1.
MatForm.MatQuery.Fields[2] as TNumericField).DisplayFormat:='#0.0000000';

, но к округленному значению просто прибавляются нули.
...
Рейтинг: 0 / 0
30.10.2018, 09:27
    #39724780
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterinaно к округленному значению просто прибавляются нули
тогда я бы по цепочке адресовал вопрос к датасету, затем к серверу...
...
Рейтинг: 0 / 0
30.10.2018, 09:37
    #39724785
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterinaДок,

я так сделала:
Код: sql
1.
MatForm.MatQuery.Fields[2] as TNumericField).DisplayFormat:='#0.0000000';


, но к округленному значению просто прибавляются нули.
Пиши формат "#0.#######“
...
Рейтинг: 0 / 0
30.10.2018, 09:38
    #39724786
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterinaДок,

я так сделала:
Код: sql
1.
MatForm.MatQuery.Fields[2] as TNumericField).DisplayFormat:='#0.0000000';

, но к округленному значению просто прибавляются нули.
1) Значит, округление происходит не в гриде: вы установили формат у поля в наборе данных.
2) Округление данных происходит раньше
3) Сколько нулей после запятой вы указали, столько и должно прибавиться.
4) У некоторых компонентов для наборов данных есть единый формат для всех полей базовых типов. Может быть в этом дело, если данные с сервера уже не приходят в округлённом виде (округлить может процедура, которая их возвращает).
5) У набора данных не тот тип поля. К примеру, в базе тип поля double, а в наборе данных - real. Такое может быть, когда в sql приводят данные (cast()) с целью уменьшить количество знаков после запятой.
...
Рейтинг: 0 / 0
30.10.2018, 09:39
    #39724790
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
Шавлюк Евгений,

ничего не поменялось.
...
Рейтинг: 0 / 0
30.10.2018, 09:41
    #39724791
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
goldmi45,

в базе тип numeric (foxpro).
...
Рейтинг: 0 / 0
30.10.2018, 09:42
    #39724792
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
что тогда можно сделать? из-за этой проблемы я не могу удалить запись.
...
Рейтинг: 0 / 0
30.10.2018, 10:22
    #39724801
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterinaчто тогда можно сделать? из-за этой проблемы я не могу удалить запись.Плохой стиль - делать флоат-поле важным для удаления записи, т.к. это "неточное" поле.
...
Рейтинг: 0 / 0
30.10.2018, 10:27
    #39724803
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
L_argo,

даже если это не условие удаление, все равно это плохо, нужно чтобы было как в базе.
...
Рейтинг: 0 / 0
30.10.2018, 11:10
    #39724836
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
если выводить это значение в edit, то результат не округляется, но отсекается часть числа, например, если в бд 0,0012, то в edit - 0,001.
пишу так, не помогает:
Код: sql
1.
RedactorMatForm.UdNormaEdit.Text:=FormatFloat('0.######', strtofloat(MatForm.ADOQuery1.FieldByName('unr1').AsString));
...
Рейтинг: 0 / 0
30.10.2018, 11:20
    #39724843
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterinaесли выводить это значение в edit, то результат не округляется, но отсекается часть числа, например, если в бд 0,0012, то в edit - 0,001.

С чего вы решили, что 0,0012 не округляется? 0,001 вполне себе выглядит, как округлённое.
...
Рейтинг: 0 / 0
30.10.2018, 11:20
    #39724844
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
goldmi45,

неудачный пример привела. число 0,0088 в бд, в edit - 0.008
...
Рейтинг: 0 / 0
30.10.2018, 13:50
    #39724924
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterina,

это не округление уже, а обрезание... Надо смотреть эти поля в DataSet'е и как они там настроены (если добавлены в список полей) -- свойство Precision может быть меньше реального и обрезать лишнее.
...
Рейтинг: 0 / 0
30.10.2018, 14:01
    #39724938
TsYekaterina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
JaDi,

решила проблему так: в запросе добавила cast на это поле (cast(unr.unr1 as double))
...
Рейтинг: 0 / 0
30.10.2018, 14:02
    #39724940
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искомые данные в dbgrideh без округления
TsYekaterinaиз-за этой проблемы я не могу удалить запись.

Удаляйте её по целому первичному ключу.

TsYekaterinaнужно чтобы было как в базе.
Как уже сказали: пройдите по всей цепочке преобразований чтобы выяснить где именно что-то
идёт не так. Отладка же - рутинная работа программиста.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / искомые данные в dbgrideh без округления / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]