Форум: "Базы";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
ВнизПроблемы с представлением чисел Float в IB 6.0 Найти похожие ветки
← →
Nimfa © (2005-06-12 14:50) [0]При чтении данных или выводе из поляй типа Float они представляются приблизительно, т.е. если в поле записала 0.65, при просмотре таблицы оно выглядит 0.65000454534536.
Можно ли это каким нибудь образом избежать?
И желательно рациональным методом.
← →
Беспечный_Ангел © (2005-06-12 14:53) [1]Numeric?
← →
Anatoly Podgoretsky © (2005-06-12 14:57) [2]Так float это и есть приблизительное.
← →
Nimfa © (2005-06-12 15:12) [3]и представляла себе этот тип не как приблизительное, а как тип 34 бита с плавающей точкой. Он что не может данные в нормальном виде представлять пользователю. Например как real в делфи.
← →
sniknik © (2005-06-12 15:41) [4]> c плавающей точкой
вот именно с плавающей. (хотя правильнее наверное с ... запятой)
real тоже не точен, настолько, что это 2 разных типа в зависимости от установок...
и в любом случае,
выполни вот это
procedure TForm1.Button1Click(Sender: TObject);
var r: real;
begin
r:= 0.002;
if r = 0.002 then
ShowMessage(FloatToStr(r));
end;
скажи чего показывает? ;о)) только не врать!
еще почитай про типы с плавающей запятой (есть статьи, сделай поиск ), подумай, и может тогда наступит "просветление" ;).
← →
Desdechado © (2005-06-12 21:17) [5]дробные типы никогда не бывают абсолютно точными
их точность зависит от способа хранения (внутреннего формата)
если отдельно хранить целую часть, а отдельно дробную (в виде целой), то тогда что-то можно добиться
в некоторых системах так и делается (на внутреннем уровне) для хранения дробей
в IB можешь использовать double precision - он точнее
← →
HSolo © (2005-06-13 09:27) [6]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
http://ibase.ru/devinfo/round.htm
← →
highlander © (2005-06-13 10:32) [7]У меня точно такая же проблема была, но только в таблицах Парадокса, там тип поля Numeric. В это поле записывается результат выполнения сложного запроса с агрегатами типа:
select (sum(t1.a)+sum(t2.b)-sum(t3.a))*t4.b
или что-то вроде того. Результат такой выборки естественно Float.
Как бороться с этим - еще не придумал. Может кто-то подскажет?
← →
Desdechado © (2005-06-13 11:54) [8]приведи к другому типу
SELECT CAST( выражение AS тип )
← →
Megabyte © (2005-06-14 01:52) [9]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
Хорошая статейка. Действительно после прочтения все вопросы отпадут. ;)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.017 c