Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];

Вниз

Данные типа 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
7-75442
Glukalex
2003-10-09 17:07
2003.12.23
Чтение данных из COM-порта


8-75282
Maks
2003-08-25 12:18
2003.12.23
Размер изображения


1-75211
Igit
2003-12-03 12:09
2003.12.23
Постоянно сжирает память


4-75457
Dima_dvp
2003-10-28 19:23
2003.12.23
Не главные окна


1-75175
webpauk
2003-12-11 18:13
2003.12.23
Popup Parent





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский