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

Вниз

Почему так?   Найти похожие ветки 

 
fast2   (2006-07-25 21:33) [0]

Таблица FB, одно из полей типа FLOAT. Заношу значение 531,85 а в записывается 531,849975585937
Почему так?


 
cando ©   (2006-07-25 21:36) [1]

Скажи откуда ты 531,85 получил?


 
Desdechado ©   (2006-07-25 21:37) [2]

Если хочешь дробную часть точно хранить, пользуй типы с фиксированной точкой numeric или decimal.
Машинное представление чисел с плавающей точкой всегда имеет погрешность.


 
fast2   (2006-07-25 21:58) [3]

>Desdechado ©   (25.07.06 21:37) [2]
Какого типа должна быть переменная k, чтоб можно было занести ее значение в поле типа numeric? И как занести это значение? Типа...
    IBQuery1.Close;
    IBQuery1.SQL.Text:="INSERT INTO Table1 (kat) VALUES (:_kat)";
    IBQuery1.ParamByName("_kat").As???:=k;
    IBQuery1.ExecSQL;


 
fast2   (2006-07-25 22:22) [4]

никто не может подсказать?


 
palva ©   (2006-07-25 22:26) [5]

Строку попробуй. Причем запятая отделяет дробную часть от целой.


 
Johnmen ©   (2006-07-25 22:28) [6]

Читать здесь http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
потом думать, потом снова задать вопрос...


 
fast2   (2006-07-25 22:29) [7]

>Строку попробуй. Причем запятая отделяет дробную часть от целой.
Т.е. тип поля сделать текстовым? А при вычислениях делать strtofloat?


 
Johnmen ©   (2006-07-25 22:30) [8]


> Desdechado ©   (25.07.06 21:37) [2]
>
> Если хочешь дробную часть точно хранить, пользуй типы с
> фиксированной точкой numeric или decimal.


Это не так. Ибо данные типы виртуальны. В зависимости от размерности могут храниться или как int или double precision. В доке всё подробно...:)


 
Johnmen ©   (2006-07-25 22:31) [9]


> palva ©   (25.07.06 22:26) [5]
>
> Строку попробуй.


Не стОит, право, ерундой заниматься :))


 
Desdechado ©   (2006-07-25 22:48) [10]

Johnmen ©   (25.07.06 22:30) [8]
Да знаю я. Однако способ хранения и способ представления при доступе к ним - разные вещи.


 
StriderMan ©   (2006-07-25 23:55) [11]


> IBQuery1.ParamByName("_kat").Value:=k;


 
Fay ©   (2006-07-26 00:07) [12]

боян


 
fast2   (2006-07-26 14:44) [13]

> IBQuery1.ParamByName("_kat").Value:=k;
А какого типа должна быть k? При real - выдает ошибку


 
StriderMan ©   (2006-07-26 14:49) [14]


> real

лучше double взять

Value оно Variant, должно взять


 
palva ©   (2006-07-26 16:37) [15]


> fast2   (26.07.06 14:44) [13]
> > IBQuery1.ParamByName("_kat").Value:=k;
> А какого типа должна быть k? При real - выдает ошибку

Да какого угодно - string, double, ineger. Только string, конечно, с точкой в качестве разделителя.



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

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

Наверх




Память: 0.49 MB
Время: 0.066 c
3-1149593377
Fiallo4ka
2006-06-06 15:29
2006.08.13
связи в таблицах


15-1153287680
KygECHuK
2006-07-19 09:41
2006.08.13
Где найти словар?


15-1152895444
lookin
2006-07-14 20:44
2006.08.13
В Скайп никто не желает?


8-1137324860
Дмитрий Белькевич
2006-01-15 14:34
2006.08.13
Деинтерлейс


15-1153285437
syte_ser78
2006-07-19 09:03
2006.08.13
Пользывался кто сервисом?