[erlang-questions] double to float

Sten Kvamme sten@REDACTED
Thu Oct 18 19:18:06 CEST 2007


Vlad pointed in the right direction, so it's working now (thanks  
Vlad!). But it still puzzles me that I have to mirror the 8 bytes to  
have erl accepting them as a float. In C I just do like this:        
fread(Xrealp, sizeof(Xreal), 1, fpdxf);

Here's the erlang code snippet:

ac_double(Thefile) ->
	<<X:8/binary, B/binary>> = Thefile,
    <<X1,X2,X3,X4,X5,X6,X7,X8>> = X,
    <<Y/float>> = <<X8,X7,X6,X5,X4,X3,X2,X1>>,
	{B,Y}.

Here is the whole thing (remember I have just bought the book ;-)
http://www.kvamme.se/pub/dxf.erl.txt

And here's a small binary dxf file to run on it.
http://www.kvamme.se/pub/b.dxf

I'm learning fast and it's real fun. I can truly recommend the book.

/Sten Kvamme

On Oct 16, 2007, at 20:43 , Vlad Dumitrescu wrote:

> Hi and welcome,
>
> On 10/16/07, Sten Kvamme <sten@REDACTED> wrote:
>> I'm reading a binary file with lots of double data types. Have
>> someone already written some code to convert the double 8 bytes,
>> <<184,162,71,68,75,65,104,64>> to a float?
>
> Do you mean
>    <<X/float>> = <<184,162,71,68,75,65,104,64>>
> ?
>
> regards,
> Vlad




More information about the erlang-questions mailing list