[erlang-questions] erlang float comparison

Hynek Vychodil hynek@REDACTED
Mon May 14 09:50:57 CEST 2012


1> 0.99999998 < 1.000000.
true
2> 1.99999976 < 1.99999988.
true

What's the problem?

On Mon, May 14, 2012 at 9:41 AM, Angel J. Alvarez Miguel <clist@REDACTED>wrote:

> **
>
>
> Hi guys
>
>
>
> I need to compare two floats something like 0.99999998... vs 1.000000
>
> and we came across accuracy problems when testing dihedral angles on a
> molecule...
>
>
>
> so we read
> http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
>
> and wanted to implement something like:
>
>
>
> if (*(int*)&f1 < *(int*)&f2)...
>
>
>
> when ef1 and f2 are floats... (f1 about 0.9999899.. and f2=1.0
>
>
>
> is think we should start with...
>
>  <<Padding:16,Myint:64>> = term_to_binary(1.9999976,[{minor_version,1}]).
>
>
>
> and let Padding swallow the external format and tag while Myint gets the
> ieee754 float
>
>
>
> But MyInt = 4611686017346523993 instead of 1073741822
>
> these conversion should follow ieee754 and being lexicografic ordered
>
> but ...
>
> term_to_binary(1.99999976,[{minor_version,1}]).
>
> <<131,70,63,255,255,255,191,147,83,89>>
>
> term_to_binary(1.99999988,[{minor_version,1}]).
>
> <<131,70,63,255,255,255,223,201,169,173>>
>
> doesnt seem to be the same thatn you spect to see after reading that
> page...
>
>  ..What im doing wrong....?
>
>
> ieee754 layout....
>
>
>   +1.99999976
>
> 0x3FFFFFFE
>
> 1073741822
>
> +1.99999988
>
> 0x3FFFFFFF
>
> 1073741823
>
> +2.00000000
>
> 0x40000000
>
> 1073741824
>
> +2.00000024
>
> 0x40000001
>
> 1073741825
>
> +2.00000048
>
> 0x40000002
>
> 1073741826
>
> Thanks!..
>
> /Angel
>
>
>
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>


-- 
Hynek Vychodil
Chief Scientists

GoodData
náměstí 28. října 1104/17, 602 00, Brno - Černá Pole
Office:   +420 530 50 7704
E-mail:  hynek@REDACTED
Web:     www.gooddata.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120514/b9ed4948/attachment.htm>


More information about the erlang-questions mailing list