Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: problem in reading large deimal number
Replies: 1   Last Post: Jul 17, 2013 9:41 AM

 Messages: [ Previous | Next ]
 Steven Lord Posts: 18,038 Registered: 12/7/04
Re: problem in reading large deimal number
Posted: Jul 17, 2013 9:41 AM

"seeker_123 " <vinuhere5653@gmail.com> wrote in message
news:ks5c8i\$ls8\$1@newscl01ah.mathworks.com...
> hiii
>
> my main intention to convert decimal number to IEEE 754 form.
> so for that conversion i am going to use below function
> -----------------------------------------------------------------------------------------------
> function s = num2bin(x)
> s = sprintf('%bx',x);
> t = sprintf('%bx',2);
> if t(1)==0
> s = reshape(fliplr(reshape(s,2,8)),1,16); end
> s = reshape(dec2bin(hex2dec(s'),4)',1,4*16);
> -------------------------------------------------------------------------------------------------
>
> function calling fid = fopen('decimal.txt','r');
> x = fscanf(fid,'%f',1)
> y = num2bin(x)
> fclose(fid)
>
> where x will be decimal no.
> which i am going to read from a file this function works fine if decimal
> number is small
> if it is large like this
> 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164809964723200
> then it x is truncating
> 8.9885e+307
> this i dont want because i am loosing precision

That's unavoidable. The large number you posted is not exactly representable
as an IEEE 754 double precision number. The best you can do is to work
symbolically with Symbolic Math Toolbox.

s =
sym('89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164809964723200')

--
Steve Lord
slord@mathworks.com