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

Вниз

выборка float из mysql   Найти похожие ветки 

 
morda   (2006-10-19 05:48) [0]

Всех приветствую. Столкнулся с такой проблемой:
подключаюсь из delphi-программы к mysql через ADO+ODBC. в таблице есть несколько полей типа float. выбираю все поля в dbgrid. Потом обращаюсь к полю которое равно например 0,31:

dbgrid1.DataSource.DataSet.Fields.FieldByNumber(i).asfloat

получаю 0,310000002384186

как так 0,31  = 0,310000002384186 ;  0,32 = 0,319999992847443 ?
как взять правильное число (буду очень признателен за код)


 
Ketmar ©   (2006-10-19 05:50) [1]

а это и есть правильное число. "правильней" некуда. а то, что какой-то софт его тебе округляет при выводе -- так это глюки софта.


 
morda   (2006-10-19 06:11) [2]

нет, 0,31  - это правильное число, я сам вводил его в таблицу, и mysql отображает ИМЕННО его по такому же запросу как и в делфи. А Вот откуда в делфи берётся мусор после запятой и главно как получить именно то число которое в СУБД ?


 
Ketmar ©   (2006-10-19 06:15) [3]

повторю для водителей бронепоезда: если какой-то софт округляет числа -- то это интимные баги этого софта. Delphi за тебя округлять не будет.

а что ты там воодил -- это дело десятое. почитай о представлении дробных чисел в компе. сразу всё прояснится.


 
Ketmar ©   (2006-10-19 06:16) [4]

зыж чую, что сейчас меня обзовут ламером и будут с пеной у рта пояснять, что в базе точно 0.31 лежит.


 
vegarulez ©   (2006-10-19 06:21) [5]

У флоата, когда в делфе к базе обращаешся поставь порог точности.
то бишь разрядности после зпт. и всё.


 
Ketmar ©   (2006-10-19 06:22) [6]

>[5] vegarulez(c) 19-Oct-2006, 06:21
>и всё.
и прощайте, точные значения. %-)


 
morda   (2006-10-19 06:32) [7]

как порог точности в делфи поставить
приведи код пожалуйста
есть такой оператор ?


 
Anatoly Podgoretsky ©   (2006-10-19 08:56) [8]


> нет, 0,31  - это правильное число, я сам вводил его в таблицу

Это исключено, база не в состоянии хранить подобное число и это не обойти, фундаментальные законы дискретной математики.


 
Anatoly Podgoretsky ©   (2006-10-19 08:58) [9]

> У флоата, когда в делфе к базе обращаешся поставь порог точности.
то бишь разрядности после зпт. и всё.

Попробуй перевести слово флоат, что бы понять абсурдность данного предложения.


 
Anatoly Podgoretsky ©   (2006-10-19 08:59) [10]


> А Вот откуда в делфи берётся мусор после запятой и главно
> как получить именно то число которое в СУБД

Ты его получил, если получишь, что то другое, значит по дороге где то затесался диверсант.


 
Anatoly Podgoretsky ©   (2006-10-19 09:00) [11]


> и прощайте, точные значения. %-)

Как раз наоборот, если число с фиксированым числом знаков после запятой, то до здраствуют точные числа.


 
Ketmar ©   (2006-10-19 09:05) [12]

>[11] Anatoly Podgoretsky(c) 19-Oct-2006, 09:00
>Как раз наоборот, если число с фиксированым числом знаков
>после запятой, то до здраствуют точные числа.
я отвечал в контексте ветки. если здесь округлять/обрезать -- то точное значение тю-тю.


 
vegarulez ©   (2006-10-19 09:07) [13]

procedure TForm1.Button1Click(Sender: TObject);
var
i:extended;
begin
i:=strtofloat(Edit1.Text);
label1.Caption:=formatfloat("0.00",i);
end;


 
vegarulez ©   (2006-10-19 09:09) [14]

procedure TForm1.Button1Click(Sender: TObject);
var
i:extended;
begin
i:=strtofloat(Edit1.Text);
label1.Caption:=formatfloat("0.00",i);
end;

end.


 
Ketmar ©   (2006-10-19 09:11) [15]

>[14] vegarulez(c) 19-Oct-2006, 09:09
двойка. внимательно читай [2]. "как получить именно то число которое в СУБД ?" твой код даёт вовсе не это.


 
vegarulez ©   (2006-10-19 09:14) [16]

Ну в мускле тогда зайти и настроить float до какого символа записывать флоат в ту колонку, из которой он берёт значение...


 
Johnmen ©   (2006-10-19 09:21) [17]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
читать до полного...


 
Anatoly Podgoretsky ©   (2006-10-19 18:49) [18]


> Ну в мускле тогда зайти и настроить float до какого символа
> записывать флоат в ту колонку, из которой он берёт значение.
> ..

А что у него числа с плавающей запятой, с неплавающей запятой.



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

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

Наверх




Память: 0.51 MB
Время: 0.057 c
15-1160636081
ANB
2006-10-12 10:54
2006.11.05
Исправить орфографические ошибки


15-1161323122
ZeroDivide
2006-10-20 09:45
2006.11.05
Где то в доме течет труба... затапливает потолок... :(


2-1161260781
vitaly27
2006-10-19 16:26
2006.11.05
Помогите пожалста больше немогу


15-1160664532
Александр Иванов
2006-10-12 18:48
2006.11.05
Существуют ли в России единые базы нормативных документов?


1-1159008685
DelphiLamer
2006-09-23 14:51
2006.11.05
Как получить список всех процедур в библиотеке?