dlmwrite is printing the wrong number

1 view (last 30 days)
Juliette Salexa
Juliette Salexa on 5 Jan 2015
Edited: Star Strider on 5 Jan 2015
dlmwrite('a.txt',288230387962871929,'precision',40);
Creates a file with one number listed:
288230387962871940
I thought this might be due to using a 32-bit version of MATLAB. I then tried with a machine running 64-bit MATLAB, I got:
288230387962871936
Why doesn't it print 288230387962871929 like I asked it to ?

Answers (1)

Star Strider
Star Strider on 5 Jan 2015
Edited: Star Strider on 5 Jan 2015
The reason it is writing ‘288230387962871936’ instead of ‘288230387962871929’ is explained by the error the ‘qd’ calculations throws in this code snippet:
qb = dec2bin(288230387962871929);
qd = bin2dec(qb);
Error using bin2dec (line 35)
Binary string must be 52 bits or less.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!