Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.23;
Скачать: CL | DM;

Вниз

Данные типа FLOAT   Найти похожие ветки 

 
galexis ©   (2003-12-01 10:35) [0]

Естьв базе данных поле типа FLOAT. Заношу туда данные, например 800.2 - а сохраняется 800,200012207031. Что это значит? Можно ли изменить формат ввода с . на , ?
Спасибо


 
BlackKing   (2003-12-01 10:37) [1]

ne ispol"zuj FLOAT, ispol"zuj DOUBLE PRECISION


 
Anatoly Podgoretsky ©   (2003-12-01 10:39) [2]

Это числа с плавающей запятой, их представить точно нельзя, представление будет до ближайшего числа, которое можно.
Формат ввода определяется региональными настройками.


 
galexis ©   (2003-12-01 10:43) [3]

>BlackKing Да, действительно. DOUBLE PRECISION помогло. Спасибо

>Anatoly Podgoretsky Региональными настройками на сервере где FireBird или на пользовательской машине. Потому что ввожу 800.2 (иначе ошибка), а отображатся 800,2


 
galexis ©   (2003-12-01 10:59) [4]

Проверил. И на сервере разделитель целой и дробной части "," и на пользовательской машине ",". Чего же делать? Получается, что если открыть запись на изменение, нужно все запятые на точки исправлять. Как то не хорошо.


 
sniknik ©   (2003-12-01 11:02) [5]

galexis © (01.12.03 10:43) [3]
>BlackKing Да, действительно. DOUBLE PRECISION помогло. Спасибо
не помогло(вернее это помогло в данном случае) просто у DOUBLE PRECISION ближайшее возможное число немного другое. к примеру 800,20000000000012207031 (часть с "лишними" цифрами обрезает) вот и все.
но и DOUBLE возможны "экссесы".

> ввожу 800.2 (иначе ошибка), а отображатся 800,2
на ввод можно поставить любой разделитель (также как и на вывод), например 800@2 и 800#2.

galexis ©
> Проверил.
где? в дельфях?


 
BlackKing   (2003-12-01 11:07) [6]

Ja postojanno ispol"zuju Double Precision i ni razu ne vozniklo problem, a po nachalu pitalsja ispol"zovat" Float, s nim nichego horoshego ne vishlo.


 
Reindeer Moss Eater ©   (2003-12-01 11:09) [7]

Дабл прецижн это и есть плавающая запятая. Так же как и Single.


 
galexis ©   (2003-12-01 11:27) [8]

> sniknik
проверял в региональных настройках систем.
Но дело в другом. Я же SQL запрос использую. А в нем запятая означает разделитель полей. Как это обойти?


 
Reindeer Moss Eater ©   (2003-12-01 11:28) [9]

Через параметры обойти. И навсегда забыть при этом про запятые и точки.


 
ZrenBy ©   (2003-12-01 11:30) [10]

800.2 или 800,2 или 800@2 = 8002E-1


 
Anatoly Podgoretsky ©   (2003-12-01 11:31) [11]

Ты ни разу не расшифровал это "Заношу туда данные"


 
Anatoly Podgoretsky ©   (2003-12-01 11:36) [12]

Даже для Extended это число 800,200000000000046, что означае, что данное число не возможно представить точно.


 
galexis ©   (2003-12-01 11:36) [13]

>Anatoly Podgoretsky Заношу данные так:
INSERT INTO CONTROL (NUMPOST,SUMMASH) values ("+
NUMPOST1+","+
SUMMASH1+")";
NUMPOST1, SUMMASH1 - это переменные, одна Integer, другая Double.


 
sniknik ©   (2003-12-01 11:52) [14]

> NUMPOST1, SUMMASH1 - это переменные, одна Integer, другая Double.
и прямо в текст вставляются? сомнительно

никакиж проблем, + если много заносится гораздо быстрее
INSERT INTO CONTROL (NUMPOST,SUMMASH) values (:p1, p2)
parameters[0].value:= NUMPOST1;
parameters[1].value:= SUMMASH1;


 
galexis ©   (2003-12-01 12:48) [15]

>sniknik Что то я не разобрался с параметрами. Сначала запрос, потом заполнение параметров, потом open? Так?


 
Vemer ©   (2003-12-01 12:53) [16]

Для правильного хранения значений, особенно денежных в IBase лучше использовать поля типа Numeric[10,2]. Вижу 2 перимущества: 1 - не возникает никаких дробных хвостов, 2 - при занесений более длинных дробей все само правильно округляется без надобности использования кривого Round или написания собственного округления.


 
sniknik ©   (2003-12-01 13:00) [17]

galexis © (01.12.03 12:48) [15]
сначала, вне циклов(а) запрос, в цикле заполнение, после заполнения ExecSQL.



Страницы: 1 вся ветка

Текущий архив: 2003.12.23;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
4-75456
KyRo
2003-10-29 22:11
2003.12.23
Разъясните работу функци Shell_NotifyIcon


1-75164
yaric
2003-12-09 16:22
2003.12.23
Проблема с DevExpress


3-75118
Bless
2003-11-28 16:27
2003.12.23
Как передать параметры в х.п.?


1-75234
Clift
2003-12-10 19:32
2003.12.23
Paramstr()


1-75166
Matrixxx
2003-12-09 18:17
2003.12.23
Дана матрица