Страница 1 из 1

Поле типа Float: глюки с дробными числами

Добавлено: 23 окт 2006, 11:24
slc
Доброго времени суток.

InterBase 5.5, в таблице - поле типа Float. Из программы на Delphi пытаюсь писать значение в поле:
IBTable1.FieldByName('MyField').AsFloat:=StrToFloat(Edit1.Text).

Если в Edit1 введено целое число, то все сохраняется корректно, если же дробное - получается какое-то огромное совершенно левое число.

Пытался добавлять и редактировать через IBQuery/SQL и прямо из DBGrid - то же самое.

Как это исправить?

Добавлено: 23 окт 2006, 11:53
kdv
float практически не пригоден к использованию из-за низкой точности. см.
www.ibase.ru/devinfo/round.htm

плюс известную статью про вещественные числа
http://www.delphikingdom.com/asp/viewit ... alogid=374

p.s. кроме того, в 5.5 есть глюк, который приводит к порче базы, поэтому надо апгрейдиться до 5.6. И еще в 5.x и 6.0 есть +1 один глюк, который тоже приводит к порче базы. Это я на всякий случай, если вдруг на 6.0 решишь перейти.

Добавлено: 23 окт 2006, 15:43
slc
kdv писал(а):float практически не пригоден к использованию из-за низкой точности. см.
www.ibase.ru/devinfo/round.htm
плюс известную статью про вещественные числа
http://www.delphikingdom.com/asp/viewit ... alogid=374
Спасибо. Проблема решилась путем замены типа поля с Float на Double.
p.s. кроме того, в 5.5 есть глюк, который приводит к порче базы, поэтому надо апгрейдиться до 5.6. И еще в 5.x и 6.0 есть +1 один глюк, который тоже приводит к порче базы. Это я на всякий случай, если вдруг на 6.0 решишь перейти.
А все эти переходы как делаются? Я просто с interbase недавно работаю.

Добавлено: 23 окт 2006, 21:40
kdv
А все эти переходы как делаются? Я просто с interbase недавно работаю.
5.5 - платный. на 5.6 переход бесплатный. переходить на версии выше можно только если софт сами разрабатывали.

Добавлено: 23 окт 2006, 22:32
slc
kdv писал(а):
А все эти переходы как делаются? Я просто с interbase недавно работаю.
5.5 - платный. на 5.6 переход бесплатный. переходить на версии выше можно только если софт сами разрабатывали.
5.5 уже есть. Переход на 5.6 делается просто обновлением серверного софта, формат базы не меняется?
А что значит "переходить на версии выше можно только если софт сами разрабатывали"? Придется что-то в исходниках править?

Добавлено: 24 окт 2006, 10:10
kdv
формат базы не меняется?
нет.
А что значит "переходить на версии выше можно только если софт сами разрабатывали"?
это значит, что МОГУТ быть несовместимости. зарезервированные слова, криво написанные запросы (парсер исправлен в новых версиях), и т.п. То есть, совместимость определяет и декларирует разработчик ПО.

кроме того, если IB 5.x не купленный, то ...

Добавлено: 24 окт 2006, 10:19
slc
kdv писал(а):
формат базы не меняется?
кроме того, если IB 5.x не купленный, то ...
То...?

Добавлено: 24 окт 2006, 11:31
kdv
То...?
то. или купить, или переходить на бесплатный сервер.

Добавлено: 24 окт 2006, 11:45
slc
kdv писал(а):
То...?
то. или купить, или переходить на бесплатный сервер.
Хочешь сказать, что пиратскую копию апгейдить не получится?
А "бесплатный сервер" - это какой?

Добавлено: 24 окт 2006, 13:10
Dimka
slc писал(а):А "бесплатный сервер" - это какой?
И чем отличается бесплатный от платного?

Добавлено: 24 окт 2006, 14:40
stix-s
Dimka писал(а):
slc писал(а):А "бесплатный сервер" - это какой?
И чем отличается бесплатный от платного?
1 FB
2 отличается тем, что распространяется бесплатно, то бишь даром :)
Пользуя пиратское ПО ты нарушаешь закон со всеми вытекающими :)

Добавлено: 24 окт 2006, 14:54
slc
stix-s писал(а):
Dimka писал(а):
slc писал(а):А "бесплатный сервер" - это какой?
И чем отличается бесплатный от платного?
1 FB
Это что? Или кто? ;)

Добавлено: 24 окт 2006, 15:05
kdv
Это что? Или кто?
это Firebird. сокращенно FB. InterBase - сокращенно IB.

чем что отличается давным-давно написано в FAQ - www.ibase.ru/ibfaq.htm

А платное ПО от бесплатного отличается как минимум тем, что если ты платное спер, то тебя могут взять за задницу. Причем с большей вероятностью именно тебя, а не твою контору.

Добавлено: 24 окт 2006, 15:16
Dimka
Вот все, что есть
http://www.ibase.ru/devinfo/allversions.htm