How to avoid e+ notation when using fprintf to print to a file

Hi,
I am having trouble having matlab avoid using the +e notation when trying to print a number to a txt file. Here is my code:
fid_hex = fopen('result_hex.txt','r');
fid_dec = fopen('result_dec.txt','w');
while ~feof(fid_hex)
hex_val = fgets(fid_hex);
dec_val = hex2dec(hex_val);
fprintf(fid_dec ,'%d\n',uint32(dec_val));
disp(uint32(dec_val));
end;
The disp works fine and Matlab outputs the decimal value in the exact format that I want but the fprintf simply doesn't. Any ideas how to format the fprintf to avoid the e+?
uint32(hex2dec('F4CF2F5F')) = 4107218783
I want Matlab to write 4107218783 to the file; not 4.107219e+009
Thanks!

1 Comment

Note: as you are using text files, you should use 'rt' and 'wt' instead of 'r' and 'w' for your fopen()'s.

Sign in to comment.

Answers (3)

anyway... i resorted to using %.0f and it worked.. thanks for all of your help..
fprintf(1,'%.0f\n',uint32(4107218783))
fprintf(fid_dec ,'%ld\n',uint32(dec_val));
Notice the 'l' (lower-case L) before the 'd': it needs to be used for values greater than 2^31-1

2 Comments

the l before the d doesn't seem to work...
Tested fine for me:
>> sprintf('%ld\n',uint32(hex2dec('F4CF2F5F')))
ans =
4107218783
Fangjun Jiang's answer worked fine for me as well.
Which MATLAB version are you using? Are you using an early version 5 release perhaps?

Sign in to comment.

Categories

Asked:

on 20 Jun 2011

Community Treasure Hunt

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

Start Hunting!