![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Маленькая проблемка - Grid округляет автоматом [D6, dBase, FoxPro]
StenKz © (2002-12-10 14:18:00)Есть Grid, есть Dbase IV, поле number, 6 знаков до и 4 после запятой...
Так вот в при вводе в грид происходит автоматическое округление...
А надо чтобы не округляло...
Stenkz (2002-12-16 17:12:00) [1]Вери вери санькс :)
Anatoly Podgoretsky (2002-12-15 20:06:00) [2]Float нато и Float что точка плавает, не рекомендую вообще использовать этот тип, если только не нужно работать с большими числами. Больше 10^18
Stenkz (2002-12-15 19:53:00) [3]To Anatoly Podgoretsky ©
Ёпрст...
Вери санькс...
А для Float данная методика построения числа тоже действует?
Если не трудно чем флоат лучше или хуже Numeric. Или точнее где что лучше применять.. Мне надо большую точность вычислений.
Anatoly Podgoretsky (2002-12-15 19:19:00) [4]Stenkz © (10.12.02 16:17)
To Anatoly Podgoretsky ©
Работает так Пишем 156,555 получаем 156,56...
А надо 155,555
Ну вот спустя 5 дней запросов, наконец получен ответ по действительной структуре таблицы. Чего же хочешь, у тебя поле N6.4 - это один знак до, точка и четыре знака после точки, в скмме 6, ну как туда поместится 155,xxxx
Вот тебе ихи и округли и самое плохое, что еперь данные в этом поле не соответствует формату, если тебе надо 6 до и 4 после то будь добр объявить поле так N11.4 (6 + "." + 4)
Stenkz (2002-12-15 19:11:00) [5]Таблица DBASE IV
Val - C/3
Opis - C/50
Kurs - N/6/4
индексы Val, Opis
лангвидж "ASCII" ANSI
Anatoly Podgoretsky (2002-12-15 18:38:00) [6]Ну а структура таблицы, конкретно нерабочии поля
StenKz (2002-12-15 18:28:00) [7]То Anatoly Podgoretsky © Уважаемый - посмотри на первое сообщение N6,4 - (Есть Grid, есть Dbase IV, поле number, 6 знаков до и 4 после запятой...) ..... Это уже придирки тововарищи знатоки и ... лень. :(
To mike-d ©
Эффект тот - что округляет :)
Смотрю я на ту таблицу и там 4 после запятой.
Хранит так, как и округляет. опробавано на 6 делфию смотрел Database Desktop///
To sniknik ©
BDE
Type - Standart
Driver - Dbase
Enable BCD - False
Path - локальный
mike-d (2002-12-15 17:55:00) [8]И вдогонку - попробовал у себя смоделировать такую табл.
В DBGrid все как учили - те самые несчастные 4 после запятой (вводишь 5 - округляет до 4), а в Database Desktop ввожу данные - округляет до двух знаков (но хранит как вводили). Почему - не знаю и разбираться лень, не работаю я с BDE давно и навсегда.
mike-d (2002-12-15 17:30:00) [9]Да, действительно, что-то мутно...
А вообще прав Anatoly Podgoretsky © (15.12.02 17:18)- все указывает на то, что после запятой всего два знака. Может смотрит не ту таблицу с которой работает? Меня как-то от усталости также переклинило - правлю таблу в Desktop"е, а в проге ни фига!
Anatoly Podgoretsky (2002-12-15 17:18:00) [10]Что в конце видно в Database Desktop как в структуре таблицы, так и в гриде.
К тому же ты противоречишь, сначала N10.4 теперь говоришь N6,4
Проверь в конце все таки с помощью Database Desktop, может окажется, что Nx.2 и подробности с тебя вообще клещами вытягивать приходится
sniknik (2002-12-15 16:51:00) [11]а в самой таблице нортоном посмотреть?
p.s. тебе дают советы исходя из данных которые ты даеш. вернее из тебя их давят по капле. хочеш решить. описывай ВСЕ и подробно. Нет, ну на нет и суда нет.
p.p.s.
mike-d © (12.12.02 13:49) насколько я понял хотел выяснить что у тебя в чистом виде, без программных установок, а не предлагал решение, "Эффект такой же....", а собственно какой?.
Stenkz (2002-12-15 15:37:00) [12]To mike-d © опробовал твоё предложение...
Эффект такой же....
StenKz (2002-12-12 17:51:00) [13]To MsGuns ©
Anatoly Podgoretsky © прав у меня действительно N6,4.
Никаких OnCalcFields и OnGetText для этой таблицы не предусмотренно, но для других ьаблиц это присутствует.
To mike-d © - завтра на работе твоё предложение опробую.
MsGuns (2002-12-12 17:33:00) [14]>Anatoly Podgoretsky © (12.12.02 17:13)
>Ну он в чамом начале утвержает, что у него N10.4
Но он даже не сообщает каким движком (компонентами) пользуется.
Если, к примеру, в качестве НД я использую SELECT ... CAST(... AS DECIMAL(12,2)), то я и получу этот самый эффект округления.
Anatoly Podgoretsky (2002-12-12 17:13:00) [15]Ну он в чамом начале утвержает, что у него N10.4
MsGuns (2002-12-12 15:30:00) [16]Если в поле число 1.111, в св-ве DisplayFormat указано "0.00##", нет никаких обработчиков типа OnCalcFields, OnGetText и им подобным, то дело в БД, точнее в физическом формате возвращаемых датасету данных. Кстати, а как ты знаешь, что там 3 знака после точки ? Только потому, что в контрол при вводе числа три раза нажималась (и высвечивалась) единица после точки ?
mike-d (2002-12-12 13:49:00) [17]Создай новый проект, брось туда TTable, TDataSource, TDBGrid. Подключи к этой гармони свою таблу. Никаких установок для полей не делай. Оживи таблицу и посмотри прямо в дизайне на результат вывода. Отвечай - что видишь по проблемному полю?
Stenkz (2002-12-12 13:19:00) [18]To sniknik ©
DisplayFormat насколько я понял управляет отображением числа :)
И он отображает например 156,560 а не как вводилось 156,555 :(
Он тут помойму не причём.
Так вот я выставил DisplayFormat - 0.000
EditFormat - #.000#
ИИИ всеравно округляет до двух знаков после запятой...
И происходит это именно в Гриде...
sniknik (2002-12-11 15:37:00) [19]разберись с DisplayFormat, а то как то странно получается у всех работает у тебя нет.
не можеш сам то ответь to Anatoly Podgoretsky © (10.12.02 16:35).
Хотя по мне и так дали информации предостаточно.
Stenkz (2002-12-11 14:07:00) [20]То Fiend ©
Попробовал, но теперь BDE материться шо актуал small integer...
Это мне все таблицы перелапачивать ?