Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];
ВнизТочность отображения на экране Найти похожие ветки
← →
ruslan_as (2003-02-03 10:09) [0]Работаю с InterBase. Тип поля Float. В набор данных ввожу 0,001
а отображает 0,001000002464 (15 знаков). А мне нужно отображать 0,001. (а если 0,01 то отображать 0,01, вообщем как есть).
Вопрос простой, а в книге не нашел решения.
Съэкономте время пожалуйта!
← →
Романов Р.В. (2003-02-03 10:12) [1]TNumericField.DisplayFormat
← →
passm (2003-02-03 10:13) [2]ruslan_as © (03.02.03 10:09)> TNumericField.DisplayFormat & TNumericField.EditFormat.
← →
Sergey13 (2003-02-03 10:31) [3]2Романов Р.В. © (03.02.03 10:12)& passm © (03.02.03 10:13)
Это в данном случае не решение проблемы, а временный уход от нее.
2ruslan_as © (03.02.03 10:09)
Советую бороться не с отображением на экран, а с точностью хранения чисел в ИБ - там есть здоровая проблема с этим. Сам в субботу запарился сравнивая 755.68 и 755.68. Пока явно не округлил говорило что не равно.
Поможет тебе в этой борьбе UDF на сервере и/или своя функция в программе типа round(x,n), где N-количество знаков для округления.
← →
Johnmen (2003-02-03 11:59) [4]>ruslan_as ©
Если надо работать с полями с пл.точкой и при этом отображать фиксированное кол-во знаков после дес.разделителя, то см. псевдо тип NUMERIC
← →
Sergey Masloff (2003-02-03 13:39) [5]Sergey13 ©
Сергей, а что за проблема с точностью хранения? А запарки в сравнении 755.68 и 755.68 были не при использовании компонентов IBX (в частности IBSQL?)
Просто у меня есть рабочий проект в котором (в силу объективных причин) все первичные ключи - с пл.точкой. Соответственно, при наличии проблем с хранением чисел я бы испытывал грандиозные проблемы с джойнами, форин кеями и пр. Так как проблем не наблюдается, то...
← →
Alexandr (2003-02-03 13:47) [6]
> Просто у меня есть рабочий проект в котором (в силу объективных
> причин) все первичные ключи - с пл.точкой. Соответственно,
> при наличии проблем с хранением чисел я бы испытывал грандиозные
> проблемы с джойнами, форин кеями и пр. Так как проблем не
> наблюдается, то...
1) проблема с округлением есть на самом деле. И она совершенно естественна и связана с нем, что в компьютере как ни крути, а точно ограничена. И ограничена не по десятичным цифрам, а по двоичным.
2) Сделать первичные ключи с плавающей точкой это оригинально...
Но при определенных обстоятельствах действительно будет работать.
← →
Sergey Masloff (2003-02-03 14:07) [7]Alexandr ©
>1) проблема с округлением есть на самом деле. И она совершенно >естественна и связана с нем, что в компьютере как ни крути, а >точно ограничена. И ограничена не по десятичным цифрам, а по >двоичным.
Это прописные истины. Но проблемы по-прежнему не вижу.
>2) Сделать первичные ключи с плавающей точкой это оригинально...
Вы пропустили мое примечание "в силу объективных причин". И работать это будет (и работает) без проблем. Поверьте, я очень внимательно потестировал поведение IB прежде чем применить это решение в тиражируемой системе.
← →
Alexandr (2003-02-03 14:37) [8]ну я же не сказал " не будет работать" Я сказал, что нужно учесть некоторые тонкости.
Я тоже проблемы не вижу :)
Но вот челу не нравится
> Работаю с InterBase. Тип поля Float. В набор данных ввожу
> 0,001
> а отображает 0,001000002464 (15 знаков).
я и пытался объяснить, почему так.
← →
Sergey Masloff (2003-02-03 14:52) [9]Alexandr ©
>ну я же не сказал " не будет работать" Я сказал, что нужно учесть некоторые тонкости.
Я тоже проблемы не вижу :)
Ну тогда понятно ;-) У меня была единственная проблема в IBX в компоненте IBSQL при задании параметров AsFloat это не как обычно Double а Single. В то время как в IBQuery все "как обычно" - AsFloat это Double. И так как в документации про это я прочел после 3 дней плясок с бубном - так работает а так нет... то запомнилось надолго ;-)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.064 c