Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизПочему так? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.042 c