Re: Fields float4 don't return any row when selecting a value with a .

Поиск
Список
Период
Сортировка
От Bruno Wolff III
Тема Re: Fields float4 don't return any row when selecting a value with a .
Дата
Msg-id 20030618033155.GB7805@wolff.to
обсуждение исходный текст
Ответ на Fields float4 don't return any row when selecting a value with a .  ("Francisco Figueiredo Jr." <fxjrlists@yahoo.com.br>)
Ответы Re: Fields float4 don't return any row when selecting a  ("Francisco Figueiredo Jr." <fxjrlists@yahoo.com.br>)
Список pgsql-hackers
On Tue, Jun 17, 2003 at 23:26:07 -0300, "Francisco Figueiredo Jr." <fxjrlists@yahoo.com.br> wrote:
> 
> 
> Hi all,
> I'm using the 7.4 cvs version on cygwin and I noticed that if I have a 
> table with a field of float4 type and try to do a simple select:
> select * from table where field_float4 = 4.4
> 
> it doesn't return any rows.
> In the same table I have a float8 field and it works ok.
> 
> If I try with a value without the . in the float4 field it also works.

I believe that is because the constant 4.4 is originally a float 8 value
and the comparison to the float4 value is done by promoting to float8.
And the nearest float4 value to 4.4 is not the same as the nearest
float8 value to 4.4. I think both quoting the 4.4 or casting it to
float4 will solve your problem.

Note that under many circumstances equality tests between floating
values doesn't make a lot of sense. If you really want to do this,
you might want to consider using the numeric type.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Francisco Figueiredo Jr."
Дата:
Сообщение: Fields float4 don't return any row when selecting a value with a .
Следующее
От: "Christopher Kings-Lynne"
Дата:
Сообщение: lots of configure failures on freebsd/alpha