dlmwrite is printing the wrong number

1 visualización (últimos 30 días)
Juliette Salexa
Juliette Salexa el 5 de En. de 2015
Editada: Star Strider el 5 de En. de 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 ?

Respuestas (1)

Star Strider
Star Strider el 5 de En. de 2015
Editada: Star Strider el 5 de En. de 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!

Translated by