Scientific notation is a way of writing numbers that are too big or too small to be conveniently written in decimal form
as 1015 is too big to be written conveniently and have simple scientific form, it will show it as such.
Zeroes and strange values are here because of precision problems. Doubles store about 20 significant digits. Everything after that can be lost. In your case it leads to fact that 1e+23 + 2013 = 1e+23 because next representanle number is larger that that.
ok thanks. please look this http://www.zator.com/Cpp/E2_2_4a1.htm . why does this application give me 10000000000002012 when i insert 10000000000002013 ? can you explain me or give me a link to get the answer ? why does the ieee-754 round off the input?
Ok. Let me get you an exmple in decimal:
Pretend you have some datatype which lets you store only 5 significant digits + 2 digits of exponent. Value 1020304 can be storead as 10203e+02 (only 5 digits is stored)
Now add 123. You will get 10204e+02 because there is no place to write other digits and they are lost.
Now remember that computer uses binary and there is some numeric system quirks.